중화사전망 - 서예자전 - C 사전의 수

C 사전의 수

실제로 gets 로 전체 줄을 읽고 처리하는 것이 더 쉽습니다. 여기서 getc 를 사용하면 프로그램이 복잡해지고 오류가 발생하기 쉽다.

예를 들어 참고하고, 주석을 보고, 이해하려고 노력하세요.

# 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 을 반환합니다

}