我们在使用fgets()函数中,如果我们对所得到的字符串和我们已知字符串用strcmp进行对比,使用如下:
#include<stdio.h>
#include <string.h>
#define ANSWER "Grant"
#define size 40
char* s_gets(char *st,int n);
int main(void)
{
char tr[size];
puts("who is buried in Grant's tomb");
fgets(tr, size, stdin);
printf("输入的字符数为:%d.", strlen(tr));
while (strcmp(tr,ANSWER)!=0)
{
puts("No, that's wrong. Try again");
fgets(tr, size, stdin);
}
puts("That's right.");
/*char words[num] ;
while (fgets(words,num,stdin)!=NULL&&words[0]!='\n')
{
fputs(words,stdout);
}*/
return 0;
}
我们会发现不管我们输入什么即使是Grant,都会提示我们没有输入正确,我中间加入了一个打印输入字符长度的语句,运行结果总会比我们输入字符数多一个,那正好印证了fget()函数在输入字符串末尾保存了一个换行符。