【发布时间】:2015-05-29 06:03:39
【问题描述】:
我使一个字符矩阵减速
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) ☺
为什么结果中有一个“笑脸”☺?
【问题讨论】:
-
gets()是危险的。请改用fgets()。 -
试试
char strs[3][200] = {{'\0'}};。如果这不起作用,请提供MCVE。顺便说一句,您的输入和结果不匹配。 -
你从哪里得到第四个输出?您的源文件似乎包含一些奇怪的字符。
-
笑脸是 DOS 字符集中代码为 1 和 2 的字符。您是否正在尝试一些您没有向我们展示的花哨的东西,例如增加
strs[0][0]++或类似的? -
@LPs: 初始化为
strs[3][200]后的strs[0]是什么?