我正在尝试用空格替换第一行,这里有什么问题?
#include <stdio.h>
int main(void){
char text[5][10]={
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
};
for (int i=0;i<10;i++){
text[i]=' ';
}
for (int i=0;i<5;i++){
printf("%s\n",text[i]);
}
return 0;
}
答案 0 :(得分:3)
答案 1 :(得分:3)
你有两个问题。
您只在第一个循环中提供一个维度。它应该是:
text[0][i]=' ';
你只有9个'a',但你要用10个空格替换,所以你将覆盖第一行的空终止符。所以我认为你的整个循环应该是:
for (int i=0;i<9;i++){ text[0][i]=' '; }
答案 2 :(得分:3)
你必须使用
for (int i=0;i<10;i++){
text[0][i]=' ';
}
现在text
将是
text[5][10]={
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
{'a','a','a','a','a','a','a','a','a','\0'},
};
或
for (int i=0;i<5;i++){
text[i][0]=' ';
}
现在text
将成为
text[5][10]={
{' ','a','a','a','a','a','a','a','a','\0'},
{' ','a','a','a','a','a','a','a','a','\0'},
{' ','a','a','a','a','a','a','a','a','\0'},
{' ','a','a','a','a','a','a','a','a','\0'},
{' ','a','a','a','a','a','a','a','a','\0'},
};
选择您想要的任何解决方案。 :)
答案 3 :(得分:1)
我认为你应该适应
text[i][0] = ' ';
答案 4 :(得分:1)
我会再往前走 - 你在第一行“行”结束时覆盖空值。将循环设置为迭代超过0..9:
for (int i=0;i<9;i++){
text[0][i]=' ';
}
答案 5 :(得分:1)
for (int i=0;i<9;i++){
text[0][i]=' ';
}
答案 6 :(得分:0)
使您的数组长度为11: char text [5] [10] to char text [5] [11]并相应地更改初始化。
Chanage for for循环,条件'i&lt; 10'到'i&lt; 9'
问题在于索引计数。
答案 7 :(得分:-1)
它的双维数组而不是单维,这就是为什么这不起作用。