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;
} 展开
#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;
} 展开
2个回答
展开全部
第一空填:argv[1] //文件名以字符指针的形式存在argv[1]中
第二空填:fscanf(fp,"%s\n",str); //读取一行的字符串,存到str这个字符数组中去
第三空填:fclose(fp); //关闭文件
第二空填: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指定的字符数组中。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询