C语言已经存进一个数组的元素,怎样找出其中每个元素出现的次数?

将一句英文存到一个数组中,然后将其中每个单词分离,存到另一个数组中,每个单词是一个元素,怎样求每个元素出现的次数?(单词有重复的)急!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void* a,const void* b)
{
return strcmp((char*)a,(char*)b);
}
main()
{
char A[200],B[100][10],*tmp;
int i=0,j,num=1;
printf("输入一句话:\n");//单词之间用空格分隔
gets(A);
tmp=strtok(A," ");
while(tmp)
{
strcpy(B[i++],tmp);
tmp=strtok(NULL," ");
}

qsort(B,100,sizeof(B[0]),cmp);

printf("分析结果是:\n");
for(j=0;j<i;j++)
{
if(!strcmp(B[j],B[j+1]))
num++;
else
{
printf("%s:%d\n",B[j],num);
num=1;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-12
char *str="bitch of bitch";
char s[3][255];
sscanf(str,"%s%s%s",s[0],s[1],s[2]);
然后用HASH算法算出key,key相同的项就是重复项
相似回答
大家正在搜