是的,C++中的strtol函数可以解析十六进制数。当在第三个参数中设置基数为16时,strtol函数会将输入的字符串解析为十六进制数。例如:
#include <iostream>
#include <cstdlib>
int main() {
const char* hexString = "1A";
char* endPtr;
long hexValue = strtol(hexString, &endPtr, 16);
if (*endPtr != '\0') {
std::cout << "Invalid input" << std::endl;
} else {
std::cout << "Hex value: " << hexValue << std::endl;
}
return 0;
}
上面的代码会将字符串"1A"解析为十六进制数,输出结果为26。