gpt4 book ai didi

c - 末尾带有垃圾字符的字符串数组

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

我有一个字符数组缓冲区,用于存储用户将逐一输入的字符。我的下面的代码有效,但有一些我无法弄清楚的故障:

  1. 当我执行 printf 以查看 Buffer 中的内容时,它确实填满了,但最后我得到了乱码
  2. 尽管声明为 char Buffer[8],它也不会停在 8 个字符处;

有人可以向我解释发生了什么,也许我可以如何解决这个问题吗?谢谢。

char Buffer[8]; //holds the byte stream
int i=0;

if (/* user input event has occurred */)
{
Buffer[i] = charInput;
i++;

// Display a response to input
printf("Buffer is %s!\n", Buffer);

}

输出:

tagBuffer is 1┬┬w!tagBuffer is 12┬w!tagBuffer is 123w!tagBuffer is 1234!tagBuffer is 12345!tagBuffer is 123456=!tagBuffer is 1234567!tagBuffer is 12345678!

tagBuffer 是 123456789!

最佳答案

您必须以 \0 字符结束字符串。这就是它们被称为零终止字符串的原因。

分配 1 个额外的字符来保存 \0 也是明智的。

关于c - 末尾带有垃圾字符的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/270708/

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