#include "stdio.h"
#include <string.h>
struct{
char w[21];
int n;
}t[100000];
char s[100000][21];
int main(int argc,char *argv[]){
int N,i,j,k,x;
printf("Please enter N(int 0<N<100001)...\nN=");
if(scanf("%d",&N)!=1 || N<1 || N>100000){
printf("Input error, exit...\n");
return 0;
}
printf("Please enter %d strings...\n",N);
for(i=0;i<N;scanf("%20s",s[i++]));//输入字符串
for(strcpy(t[0].w,s[0]),t[0].n=k=i=1;i<N;i++){
for(j=0;j<k;j++)
if(strcmp(s[i],t[j].w)==0){
t[j].n++;
break;
}
if(j>=k){
strcpy(t[k].w,s[i]);
t[k++].n=1;
}
}
printf("-----------------\n");
for(i=1;i<=k;i++){
for(x=j=0;j<k;j++)
if(t[j].n==i)
x++;
if(x)
printf("%d %d\n",i,x);
}
return 0;
}
运行样例: