[C프로그래밍] 단어 매치 검색



 


#include  <stdio.h>
#include  <string.h>

void  pro_init(char  *,  char  *,  char  *);
void  read_file(char  *,char  *);
void  match_process(char  *,  char  *);


main()
{
int  i;
char  in_data[500];
char  file_name[30];
char  match[30];

while(1)
{
printf("\n------------------------------------\n");

pro_init(file_name,  in_data,  match);

printf("\n\n-------------------------------------\n\n");
printf("Continue?(Push  1)    or  Finish?(Push  2)");
scanf("%d",&i);
if(i  ==  2)
break;
}

}

void  pro_init(char  *file_name,  char  *in_data,  char  *match)
{

printf("Insert  Filename  :  ");
scanf("%s",file_name);
read_file(file_name,in_data);

printf("Input  Word  :  ");
scanf("%s",match);
match_process(in_data,  match);
}

void  read_file(char  *fn,char  *in_data)
{
FILE  *fp;
int  i=0;
fp  =  fopen(fn,"r");
if(fp  ==  NULL)
{
puts("Don't  open  File");
}
while(!feof(fp))
{
fscanf(fp,"%c",&in_data[i]);
i++;
}
fclose(fp);
}

void  match_process(char  *in_data,  char  *match)
{

int  i  =  0;
int  j;
int  len;
char  *ret;
len  =  strlen(match);
while(1)
{
ret  =  strstr(in_data+i,match);
if(ret  ==  NULL)
{
break;
}
else
{
i  =  ret-in_data;
for(j=0;j<15;j++)
{
printf("%c",in_data[i+j]);
}
printf("\n");
i  =  i  +  len;

}

}
}

------------------------------
파일을  불러온다.
검색하고자  하는  단어를  입력한다.
파일의  문장을  탐색하여
검색어가  있으면
그  단어와  그  뒤에  몇글자를  함께  출력...

파일  끝에까지  같은  일을  반복한다.

Insert  File  name  :  in.txt
Input  Word  :  play

playground  is  v
play  a  soccer
playing  in  the

이런  결과가  나온다.


소대원의  부탁으로  만들어봤다.
소스는  짧은데  2시간  걸렸다.
처리하는게  나름  복잡했다..

 

 [ 등록일 : 2009-08-11 23:4 ]  

 

 

[목록]