1
我正在努力获得一个字符串,在处理过程中被理解为一个十六进制字符串。我正在写一个小程序,我在这里输入ascii文本作为十六进制字符串。将十六进制字符串数组转换为十六进制数组
即我读:
char *str = "313233";
这实际上是0X31,0x32和0x33这实际上是字符串 “123”。
我需要一个无符号的字符阵列如下:
unsigned char val[] = {0x31, 0x32, 0x33};
当我试图sscanf的或sprintf的,他们期望整数数组是目标指针:(
也就是说,是这样的:
sprintf(str, "%2x", &val[0]);
如何做到这一点?也许这是很琐碎,但不知何故,我很困惑。
谢谢。
'0x31'不是十六进制'31' –
有计算器上类似的问题至极我的帮助:http://stackoverflow.com/questions/3408706/hex-string-to-byte-array-in-c – nabuchodonossor
@DavidRF true,但在我的情况下,我得到一个字符串的十六进制输入,因此我知道该字符串是一个十六进制字符串:) – user900785