# include & ltstdio.h & gt
# include & ltconio.h & gt
# include & ltstring.h & gt
# include & ltctype.h & gt
# include & ltmath.h & gt
結構字_FOUND
{
char SZ word[256];
int nCount
};
WORD _ FOUND g _ WORD FOUND[1000]= { { " ",0 } };
int g _ n match = 0;
int CalcWord(char *szFile)
{
char SZ text[1024];
char SZ word[512];
FILE * fp
int I;
if ((fp=fopen(szFile," r))= = NULL)
{
printf("找不到文件");
return-1;
}
while(fgets(szText,sizeof(szText)-1,fp))
{
char *tmp=szText,* end = SZ text+strlen(SZ text);
char * endChr
while(tmp & lt;結束)
{
while((* tmp = = ' ' | | * tmp = = ' \ n ' | | * tmp = = ' \ t ' | |!isalpha(* tmp))& amp;& amp* tmp)tmp++;
endChr = tmp
while(* end chr & amp;& amp*endChr!= ' \ n ' & amp& amp*endChr!= ' \ r ' & amp& amp*endChr!=' ')
{
如果(!isalpha(abs(*endChr)))
打破;
end chr++;
}
memset(szWord,0,sizeof(SZ word));
strncpy(szWord,tmp,end chr-tmp);
bool bFound = false
for(I = 0;我& ltg _ nMatchi++)
{
if (strcmp(g_WordFound[i].szWord,szWord)==0)
{
g_WordFound[i]。ncount++;
bFound = true
打破;
}
}
如果(!發現與發現。& ampstrlen(szWord)>0)
{
strcpy(g_WordFound[g_nMatch])。szWord,SZ word);
g_WordFound[g_nMatch]。ncount++;
g _ n match++;
}
tmp = endChr
if(tmp & gt;= end)break;
}
}
返回0;
}
int WriteWord(char *szFile,int nAppearance)
{
int I;
FILE *file=fopen(szFile," w ");
如果(!文件)return-1;
for(I = 0;我& ltg _ nMatchi++)
{
if (g_WordFound[i].nCount & gt= nAppearance)
{
fwrite(g_WordFound[i].szWord,1,strlen(g_WordFound[i].szWord)、文件);
fwrite("\n ",1,1,file);
printf("%s = %d\n ",g_WordFound[i]。szWord,g_WordFound[i]。nCount);
}
}
if(file)fclose(file);
返回0;
}
int main()
{
int I;
if (CalcWord("in.txt ")!=0)
{
printf("計算單詞失敗\ n ");
返回0;
}
WriteWord("out.txt ",10);
for(I = 0;我& ltg _ nMatchi++)
{
printf("%s = %d\n ",g_WordFound[i]。szWord,g_WordFound[i]。nCount);
}
getch();
返回0;
}