gpt4 book ai didi

c - C 中的 strcpy 和 sprintf

转载 作者:行者123 更新时间:2023-11-30 18:35:52 26 4
gpt4 key购买 nike

我正在尝试设置一些字符串变量,如下所示:

char thingA[7], thingB[7], thingC[7];
strcpy(thingA, "StringA");
strcpy(thingB, "StringB");
strcpy(thingC, "StringC");
printf("%s\n", thingA);
printf("%s\n", thingB);
printf("%s\n", thingC);

但不是这样输出:

StringA  
StringB
StringC

它的输出如下:

StringA StringB StringC  
StringB StringC
StringC

我已经用 sprintf 尝试过此操作,但得到了相同的结果。老实说,我不知道发生了什么事,也不知道如何解决这个问题,而且我在网上找不到任何内容,因为由于某种原因,搜索此类内容很困难。那么基本上为什么它将字符串 b 和 c 存储在 a 中,而 c 存储在 b 中?

最佳答案

常见错误:您的声明短了一个字节。如果你计算常量字符串中的字符,有 7 个,并且你需要空间来终止'\0',否则你将覆盖内存并得到 undefined bahvaior。

因此将它们声明为[8],这样就可以工作了。

关于c - C 中的 strcpy 和 sprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44442142/

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