在目錄下放"in.txt"作為讀入,放"out.txt"作為輸出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct
{
char ch[50];
int num;
} list[10000],temp;
int main()
{
//讀檔案
FILE *fin=fopen("in.txt", "r"), *fout=fopen("out.txt", "w");
char words[50];
char panduan;
char fuben[50];
int count=0, i=0,j=0;
while(1)
{
//char an[100];
fscanf(fin, "%c", &panduan);
if(feof(fin)) break;
if((panduan>= 'A' && panduan<='Z') || (panduan>='a' && panduan<='z') )
{
fuben[j]=panduan;
j++;
}
else
{
if(j==0)
continue;
fuben[j]=0;
j=0;
strcpy(words,fuben);
for(i=0; i<count; i++)
if(!strcmp(words, list[i].ch))
{
list[i].num++;
break;
}
if(i==count)
{
list[count].num++;
strcpy(list[count++].ch, words);
}
}
}
//選擇排序(降序)
for(i=0; i<count-1; i++)
{
for(j=i+1; j<count; j++)
{
if(list[j].num > list[i].num)
{
temp=list[j];
list[j]=list[i];
list[i]=temp;
}
}
}
//輸出結果
for(i=0; i<count; i++)
{
printf("%s:%d\n", list[i].ch, list[i].num);
fprintf(fout, "%s:%d\n", list[i].ch, list[i].num);
}
fclose(fin);
fclose(fout);
getchar();
return 0;
}