strtol 对于我的程序来说非常慢,我希望它非常快
所以例如我有这个字符串:
PCHAR ex = "\x55\xEC" etc...
它们是十六进制的,所以如果我想在没有“\x”的情况下将它写成“55 EC”等。我必须使用 strtol,但 strtol 对我的程序来说非常慢我想要我的程序中最快的..
I use strtol like (CHAR)strtol(ex, &ex, 16);
介意帮我吗?
我会做这样的事情:
unsigned long ex[] {0x55, 0xEC};
for (auto i : ex)
std::cout << std::hex << i << " ";
输出是:55 EC
你在尝试什么?strtol
将字节字符串转换为长整数;当字符串具有0x
前缀时,它将字符串视为十六进制数。它不会转换\x55
为55
. 假设中的三个错误:
0x55
为55
. 不,它会将其转换为85
(十进制)long
or long long
)\x
。不,这应该是0x
让它将其识别为十六进制值你所拥有的根本不是一个用例strtol
。您必须手动进行转换。
您所需要的只是\x
用空格查找替换所有内容并修剪生成的字符串以去除前导空格。