【发布时间】:2010-03-10 21:31:51
【问题描述】:
我通常以如下方式使用指针
char *ptr = malloc( sizeof(char) * 100 ); memset(ptr, 0, 100); strncpy(ptr,“猫”,100-1);但这次我不想使用“cat”,而是使用 ASCII 等价的十六进制。
猫 = 0x63, 0x61, 0x74, 0x00
我试过了
strncpy(点,“0x630x61”,100 - 1);但它按预期失败了。
正确的语法是什么?
我也需要输入 0x00 吗?暂时忘记memset,现在我需要输入0x00 吗?因为在“cat”表示法中,会自动放置一个空值。
问候
【问题讨论】:
-
这个的实际用途是什么?这是中等兴趣和中等这可以帮助驱动一个更好的答案......
-
这与某些 UNICODE 字符有关吗?你为什么要这样做?
-
@Romain 这个问题一直被问到(但很难搜索)——我怀疑提问者有严重的误解
-
问。你为什么想做这个? A- 我需要制作一些带有十六进制代码的 char* 来与设备通信。这些六进制组合实际上是该设备的命令。这就是我寻找语法的原因。
-
@andrew-dufresne 另外,在英语中,它是“hex”或“hexadecimal”,而不是“hexa”。
标签: c