求解释啊
#define MAX 201int main(void){ FILE *fp; char str[MAX]; char ch[15]; puts("输入一个字符串:"); gets(ch); if ( ( fp=fopen("file.txt","r") ) == NULL ) { printf("Can't open %s","file.txt"); exit(1); } while (fgets(str,MAX,fp) != NULL) { if (strstr(str, ch) != NULL) { printf(str); } } return 0;}while (fgets(str,MAX,fp) != NULL) //读取文件中的内容到str { if (strstr(str, ch) != NULL) //查找包含ch子串的字符串,这里返回的是匹配到子串的地址 { printf(str); //输出的是读取到的文件的内容,若是想输出匹配的子串,取上面的返回值输出。 } }
[解决办法]
gets(ch);
应改为
fgets(ch,15,stdin);
if ('\n'==ch[strlen(ch)-1]) ch[strlen(ch)-1]=0;