题目描述
输入一行字符,分别统计出其中 每一种字符出现的个数。
例如,有字符串“good morning”,其中g出现了2次,o出现了3次,d出现了1次,空格出现了1次,m出现了1次,r出现了1次,n出现了2次,i出现了1次。
输入格式
输入一行字符串
输出格式
输出多行,每一行输出出现过的字符及相应出现的次数,按字符出现的顺序输出,字符与次数之间用:隔开。
分析:去除重复字符+相同字符的个数
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
char str[100];
gets(str); //输入字符串
char cp[100];
strcpy(cp,str); //复制字符串
int i,j;
int len=strlen(str);
int k=0;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(cp[i]==cp[j])
{
cp[j]='\0';
}
}
} //将重复字符换掉
char s[100];
for(i=0;i<len;i++)
{
if(cp[i]!='\0')
{
s[k]=cp[i];
k++;
}
} //去除重复字符,将单个字符放入新的数组中
int count=0;
int b[100];
for(j=0;j<k;j++)
{
for(i=0;i<len;i++)
{
if(s[j]==str[i])
{
count++;
}
}
b[j]=count;
count=0;
} //对单个数组进行计数
for(j=0;j<k;j++)
{
printf("%c:%d\n",s[j],b[j]);
} //输出
return 0;
}