gpt4 book ai didi

c - 字符串中的垃圾字符

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

我已经编写了代码来制作一个角色的正确金字塔。

但是,当我执行程序时,金字塔的最后两行后面有垃圾字符,即使它超过了数组的大小时也是如此。

代码在这里:

#include <stdio.h>
#include <string.h>

#define ROW 5
int main(void) {
char array[ROW];
int x = 0;
int row = 0;

for (row = 0; row < ROW; row++) {
array[x] = 'a';
if (x < ROW) {
printf("%s\n", dolla);
}
x++;
}
getchar();
}

垃圾字符从何而来?它仅在第三行之后出现。

最佳答案

您的代码中的问题是您没有以 \0(空)字符终止您的字符串。这是您的代码的练习:

#include <stdio.h>
#include <string.h>
#define ROW 5
int main(void)
{
char array[ROW];
int x = 0;
int row = 0;


for(row = 0; row < ROW; row++)
{
array[x] = 'a';

if(x < ROW)
{
array[x+1]='\0';
printf("%s\n", array);
}
x++;
}

getchar();
}

我不是专家,但我在许多典型的 C 书籍中读过以下内容:C中的int数组被初始化为0,而char数组被初始化为garbage。

是的,忘了说,它不是 dolla,它是 array

关于c - 字符串中的垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220594/

24 4 0
文章推荐: 缺少 Android Studio 2.3.1 组件树和调色板
文章推荐: android - 如何在 Android 中压缩字符串
文章推荐: java - 如何在不排序的情况下使用 Comparator 进行升序、降序