我减速了一个字符矩阵
char strs[3][200] = {'\0'};
然后尝试为第一行插入字符串
gets(strs[0]);
然后尝试打印所有行
printf("1) ");
puts(strs[0]);
printf("2) ");
puts(strs[1]);
printf("3) ");
puts(strs[2]);
结果是
1) ☺me input from the user
2) ☺
3) ☺
为什么结果中有“笑脸”?
答案 0 :(得分:1)
这有效
#include <stdio.h>
int main()
{
char str[3][200]={{'\0'},{'\0'},{'\0'}};
fgets(str[0], 200, stdin);
fgets(str[1], 200, stdin);
fgets(str[2], 200, stdin);
fputs(str[0], stdout);
fputs(str[1], stdout);
fputs(str[2], stdout);
return 0;
}
在您的代码中,您只初始化了第一个元素/字符串。然后当你的字符串中有垃圾时。
答案 1 :(得分:-1)
看起来初始化时出了点问题。
试试这个
char options[2][100];
options[0][0]='t';
options[0][1]='e';
options[0][2]='s';
options[0][3]='t';
options[0][4]='1';
options[0][5]='\0';
printf("1) ");
puts(options[0]);
输出将是:
1) test1