gpt4 book ai didi

c - 如何将十六进制字符串转换为无符号字符数组?

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:28 25 4
gpt4 key购买 nike

例如,我有一个cstring "E8 48 D8 FF FF 8B 0D"(包括空格),需要将其转换为等效的无符号char数组{0xE8,0x48,0xD8,0xFF,0xFF,0x8B,0x0D}。什么是有效的方法?谢谢!

编辑:我不能使用std库...所以考虑这是一个C问题。对不起!

最佳答案

您永远不会说服我该操作是性能瓶颈。
有效的方法是使用标准C库来充分利用您的时间:

static unsigned char gethex(const char *s, char **endptr) {
assert(s);
while (isspace(*s)) s++;
assert(*s);
return strtoul(s, endptr, 16);
}

unsigned char *convert(const char *s, int *length) {
unsigned char *answer = malloc((strlen(s) + 1) / 3);
unsigned char *p;
for (p = answer; *s; p++)
*p = gethex(s, (char **)&s);
*length = p - answer;
return answer;
}


编译和测试。适用于您的示例。

关于c - 如何将十六进制字符串转换为无符号字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com