gpt4 book ai didi

c - 当我尝试打印(复制的)字符串时,为什么会得到一些任意数字?

转载 作者:行者123 更新时间:2023-11-30 18:27:34 25 4
gpt4 key购买 nike

我有这个结构:

struct car{
char name[9];
};

我有这个数组:

char list_of_names[10][9] = {"toyota", "b", "c", "d", "e", "f", "g", "h", "i", "j"};

如您所见,我只输入了第一个元素;其余的暂时是填充物。我试图将第一个元素(丰田)复制到我的结构汽车“名称”变量中。这是我尝试过的:

//Initialize struct variable
struct car c;
memcpy(c.name, list_of_names[0], 9);

我也尝试过使用 strcmp,但是每次我尝试某些操作时,c.name 中得到的输出始终是一些随机数。我什至尝试过取消引用指针,例如:

memcpy(c.name, *(list_of_names[0]), 9);

但无济于事;错误是一样的。有什么建议么?谢谢!

编辑

这是我所做的测试/打印:

struct car c;
memcpy(c.name, list_of_names[0], 9);
printf("printing!%d\n", c.name);

输出:

-13423455 (gibberish)  

最佳答案

您的格式字符串:"printing!%d\n" 使 printf() 期望一个整数 (%d) 而不是字符串(%s)。那是你的错误。打印的是指向字符串中第一个元素的指针的截断部分,作为有符号整数。

关于c - 当我尝试打印(复制的)字符串时,为什么会得到一些任意数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640903/

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