C语言字符串数组读取gets问题

char a[10000];
gets(a);
第一次读取没问题 比如输入“ABCDE”没问题
第二次如果输入“ABCDE”却只读取了BCDE。
我知道这和\0有关,但是怎么解决这个问题呢

这跟fgets没有关系,你程序其它地方有问题,或者你输入的方式有问题。\0是替换输入的字符串最后回车符或文件结束符的,不会替换前面的字母。

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

main()
{
   char a[10000];

   gets(a);
   printf("[%s]\n", a);
   gets(a);
   printf("[%s]\n", a);
}

输出:

ABCD
[ABCD]
ABCD
[ABCD]

温馨提示:答案为网友推荐,仅供参考