舉個例子供妳參考,看看註釋,試著理解:
# include & ltstdio.h & gt
# include & ltstring.h & gt
Struct WORD_FOUND //用於存儲結果的結構。
{
char SZ word【256】;
int nCount
};
WORD _ FOUND g _ WORD FOUND【100】= { {““,0 } };
int g _ n match = 0;
int main()
{
char SZ text【1024】;
char SZ word【512】;
FILE * fp
int I;
if((FP = fopen(“case 1。in“,r“))= = null)//打開文件。
{printf(“錯誤“);返回1;}//打不開就輸出錯誤。
while(fgets(SZ text,sizeof(SZ text)-1,FP)//在這裏讀取整行,這樣更有效且不容易出錯。
{
char *tmp=szText,* end = SZ text+strlen(SZ text);
char * endChr
while(tmp & lt;end)
{
while(* tmp = =‘‘| | * tmp = =‘\ n‘| | * tmp = =‘\ t‘)tmp++;//在此跳過空格
endChr = tmp
while (* end chr & amp;& amp*endChr!=‘\ n‘& amp;& amp*endChr!=‘\ r‘& amp;& amp*endChr!=“““)end chr++;//在此處查找下壹個空格
memset(SZ word,0,sizeof(SZ word));
strncpy(SZ word,tmp,end chr-tmp);//找到的字符存儲在szWord中。
bool bFound = false
for(I = 0;我& ltg _ nMatchi++)//查找找到的字符。
{
if(strcmp(g _ word found【I】。szword,SZ word = = 0)//如果匹配,
{
g _ word found【I】。ncount++;//加1
bFound = true
打破;
}
}
如果(!b基金& amp& ampstrlen(SZ word)& gt;0)//如果不匹配,則將字符存儲在g_WordFound中。
{
strcpy(g _ word found【g _ n match】。szWord,SZ word);
g _ word found【g _ n match】。ncount++;
g _ n match++;
}
tmp = endChr
if(tmp & gt;= end)break;
}
}
//在此打印結果
for(I = 0;我& ltg _ nMatchi++)
{
printf(“% s = % d \ n“,g _ word found【I】。szWord,g _ word found【I】。nCount);
}
返回0;
}