gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 16:33:25 24 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!

标签缓冲区是123456789!

最佳答案

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

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

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

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