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

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:35:59
将一句英文存到一个数组中,然后将其中每个单词分离,存到另一个数组中,每个单词是一个元素,怎样求每个元素出现的次数?(单词有重复的)急!

#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;
}
}
}

char *str="bitch of bitch";
char s[3][255];
sscanf(str,"%s%s%s",s[0],s[1],s[2]);
然后用HASH算法算出key,key相同的项就是重复项