중화사전망 - 서예자전 - C 사전의 수
C 사전의 수
예를 들어 참고하고, 주석을 보고, 이해하려고 노력하세요.
# include & ltstdio.h & gt
# include & ltstring.h & gt
Struct WORD_FOUND // 결과를 저장하는 구조입니다.
{
Char SZ word [256];
Int nCount
}
Word _ found g _ wordfound [100] = {",0}};
Int g _ n match = 0;;
Int main ()
{
Char sztext [1024];
Char szword [512];
FILE * FP
Int I;;
If ((FP = fopen ("case1". In \ ",r \" r“))= = null)///파일 열기.
{printf ("오류"); 1; }//열 수 없으면 출력 오류가 발생합니다.
While(fgets(SZ text, sizeof(SZ text)- 1, FP)// 여기서 전체 줄을 읽으면 더 효율적이고 오류가 발생하기 쉽지 않습니다.
{
Char *tmp=szText, * end = sztext+strlen (sztext);
Char * endChr
While(tmp & lt;; 끝)
{
While (* tmp = ='' | | * tmp = =' \ n' | | * tmp = =' \ t') tmp++; //여기서 공백 건너뛰기
EndChr = tmp
While (* end chr & amp;; & amp*endChr! =' \ n' & & amp*endChr! =' \ r' & & amp*endChr! = \ "\" \ ") endchr++; //다음 공백 찾기
메셋 (szword, 0, sizeof (szword));
Strncpy(SZ word, tmp, end chr-tmp); //찾은 문자는 szWord 에 저장됩니다.
Bool bFound = false
For(I = 0;; 내<g _ nMatchi++)// 찾은 문자를 찾습니다.
{
If (strcmp (g _ word found [I]. Szword, SZ word = = 0)// 일치하는 경우 ,
{
G _ wordfound [I]. Ncount++;+; //더하기 1
BFound = true
깨뜨리다
}
}
만약 (! B 기금&& strlen (szword) > 0)// 일치하지 않으면 g_WordFound 에 문자를 저장합니다.
{
Strcpy (g _ word found [g _ n match]. SzWord, szword);
G _ word found【g _ n match]. Ncount++;+;
G _ nmatch++;
}
Tmp = endChr
If(tmp & gt;; = end)break;;
}
}
//여기에 결과를 인쇄합니다
For(I = 0;; 나<g _ nMatchi++)
{
Printf(“% s =% d \ n', g _ wordfound [I]. SzWord, g _ word found [I]. Ncount);
}
0 을 반환합니다
}