你的想法逻辑上不错,但是不可采取的。因为文件要是很大的话,能全部读进来吗?下面提供一个做参考。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "ctype.h"
#include "string.h"
#include "stdlib.h"
struct WORD{
char w[21];
int n;
};
int main(void){
int i,j,k,l;
struct WORD w[1000];
FILE *fp;
if((fp=fopen("123.txt","r"))==NULL){
printf("Open the file failure...\n");
exit(0);
}
i=0;
while(fscanf(fp,"%s",w[i].w),!feof(fp)){
if(!isalpha(w[i].w[0]))
strcpy(w[i].w,w[i].w+1);
if(!isalpha(w[i].w[j=strlen(w[i].w)-1]))
w[i].w[j]='\0';
for(j=0;j if(strcmp(w[j].w,w[i].w)==0){
w[j].n++;
break;
}
if(j>=i)w[i++].n=1;
}
fclose(fp);
for(k=0;k for(l=k,j=l+1;j if(strcmp(w[l].w,w[j].w)>0) l=j;
if(l!=k){
w[i]=w[l];
w[l]=w[k];
w[k]=w[i];
}
printf("%-20s%d\n",w[k].w,w[k].n);
}
return 0;
}