-2

我减速一个字符矩阵

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) ☺

为什么结果中有一个“笑脸”☺?

4

2 回答 2

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;
}

在您的代码中,您仅初始化了第一个元素/字符串。然后当你的字符串中有垃圾时。

于 2015-05-29T06:35:55.097 回答
-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
于 2015-05-29T06:31:40.787 回答