gpt4 book ai didi

c - 如何使用十六进制表示法为 char* 赋值?

转载 作者:太空狗 更新时间:2023-10-29 16:58:47 25 4
gpt4 key购买 nike

我通常按以下方式使用指针

    char *ptr = malloc( sizeof(char) * 100 );    memset( ptr, 0, 100 ) ;    strncpy( ptr, "cat" , 100 - 1 );

但是这次我不想使用“cat”,而是使用十六进制的 ASCII 等价物。

cat = 0x63, 0x61, 0x74, 0x00

我试过了

    strncpy( ptr, "0x630x61" , 100 - 1 );

但它如预期的那样失败了。

正确的语法是什么?

我也需要放一个 0x00 吗?让我们暂时忘掉 memset,现在我需要放一个 0x00 吗?因为在“cat”表示法中,会自动放置一个 null。

问候

最佳答案

\xXX 是以十六进制格式插入字符的语法。所以你的会是:

strncpy( ptr, "\x63\x61\x74", 100 - 1);

您不需要输入 \x00,因为引号会自动用 null 分隔字符串。

关于c - 如何使用十六进制表示法为 char* 赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2420780/

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