c 操作文件:实现关键词搜索

实现对以下英文文本的关键词查找。
支持如下形式调用:search.exe input.txt keyword
输出:关键词首次出现位置
若实现通配符查找有加分(若实现了在文档中说明)

 1 #include "stdio.h"
 2 #include "string.h"
 3 #include "stdlib.h"
 4 #include "conio.h"
 5 
 6 void main(int argc,char **argv)
 7 {
 8     int MyCount;        //文件字符总数
 9     int i=0,j;
10     int m=0,n=0;      //行数m,每行的数目n
11     FILE *fp;
12     char word[5000];   //储存文本字符数组
13     
14     char str[20];     //关键字
15     bool flag;         //查找标志
16 
17     char *Keyword;
18     char *input;
19     if(argc<3){
20         input="input.txt";
21         Keyword="1234";
22         
23     }else{
24         input=*(argv+1);
25         Keyword=*(argv+2);
26     }
27 
28     if((fp=fopen("input.txt","r"))==NULL)
29     {
30         printf("cannot open file.\n");
31         exit(0);
32     }
33     while(!feof(fp)) //读写字符
34     {
35         word[i]=fgetc(fp);
36         putchar(word[i]);
37         i++;
38         
39     }
40     MyCount=i;
41     
42     printf("\n请输入关键字 :");//输入关键字
43     scanf("%s",str);
44     for(i=0;i<MyCount;i++,n++)
45     {
46         flag=true;
47         
48         if(word[i]=='\n')
49         {
50             m++;
51             n=0;
52         }
53         for(j=0;str[j]!='\0';j++)//匹配
54             if(str[j]!=word[i+j])
55             {    flag=false;
56                 break;
57             }
58         if(flag==true)
59         {
60             printf("\n关键字  %s  在文本里面 %d,第 %d 个 字符串.\n",str,m,++n);
61             break;
62         }    
63     }
64     getch();
65     
66 }

 

posted @ 2012-10-16 23:20  daomul  阅读(611)  评论(0编辑  收藏  举报