c语言在文本中查找字符串

从命令行参数输入文本文件名,再从键盘输入查找的字符串,在文件的每一行中(约定每一行包括\n在内最多只有99个字符)查找该字符串,若存在这个字符串,显示行号及文件中这一行的... 从命令行参数输入文本文件名,再从键盘输入查找的字符串,在文件的每一行中(约定每一行包括\n在内最多只有99个字符)查找该字符串,若存在这个字符串,显示行号及文件中这一行的内容。(/*********Found************/之后需要修改)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fp;
char str[100], substr[100];
int count = 0;
if (argc != 2)
{
printf("error");
exit(0);
}
/*********Found************/
fp = fopen(__________, "r");
if (NULL == fp)
{
printf("file open error\n");
exit(0);
}
printf("Please input the string : ");
gets(substr);
while (!feof(fp))
{
count++;
str[0] = '\0';
/*********Found************/
___________________________;
if (strstr(str, substr))
{
printf("Line%d : ", count);
puts(str);
}
}
/*********Found************/
___________________________;
return 0;
}
展开
 我来答
百度网友6fe74e2
2013-04-22 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:265万
展开全部
第一空填:argv[1] //文件名以字符指针的形式存在argv[1]中
第二空填:fscanf(fp,"%s\n",str); //读取一行的字符串,存到str这个字符数组中去
第三空填:fclose(fp); //关闭文件
更多追问追答
追问
第二空不对,麻烦再想一下
追答
fgets(str,100,fp);

char *fgets(char *str,int num,FILE *fp)
从fp中读取最多num-1个字符,直到遇到换行符或者EOF,并把读到的字符,存到str指定的字符数组中。
冰是沉默的水3
2013-04-22 · TA获得超过909个赞
知道小有建树答主
回答量:473
采纳率:50%
帮助的人:142万
展开全部
①填argv[1]
②fgets(str,90,fp);
③这里好像是填到了文件末尾吧?
-物联网校企联盟技术部
更多追问追答
追问
第二个不行
追答
看错了,以为是最多90个。。。那就换成fgets(str,100,fp);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式