c++怎么统计字符串出现的字符有哪几个字符(只有字母),并统计每个字符出现的次数;

比如 String s = “aaddffadf”;
要求出 a:3 d:3 f:3

#include\x0d\x0ausing namespace std;\x0d\x0a\x0d\x0avoid main()\x0d\x0a{\x0d\x0a char s[100], Letter;\x0d\x0a cout<>s;\x0d\x0a\x0d\x0a int count[26], i, s_i; // 统计26个字母出现的次数\x0d\x0a // 初始化\x0d\x0a for (i=0; i<26; i++)\x0d\x0a count[i]=0;\x0d\x0a // 统计各字母出现次数\x0d\x0a int n=strlen(s);\x0d\x0a for (i=0; i<n; i++)\x0d\x0a {\x0d\x0a s_i=s[i]-'a';\x0d\x0a count[s_i]++; // 字符\x0d\x0a }\x0d\x0a // 输出结果\x0d\x0a for (i=0; i<26; i++)\x0d\x0a {\x0d\x0a if (count[i] != 0 ) // 若该字母出现。。。\x0d\x0a {\x0d\x0a Letter='a'+i;\x0d\x0a cout<<Letter<<" : "<<count[i]<<endl; // 输出字母及出现次数\x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0a\x0d\x0a运行示例:\x0d\x0a输入字符串:aaddffadf\x0d\x0aa : 3\x0d\x0ad : 3\x0d\x0af : 3\x0d\x0a\x0d\x0a如果统计的字符不止是26个小写字母,只需相应改变 cout[] 的大小就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-29
#include<iostream>
using namespace std;

void main()
{
char s[100], Letter;
cout<<"输入字符串:";
cin>>s;

int count[26], i, s_i; // 统计26个字母出现的次数
// 初始化
for (i=0; i<26; i++)
count[i]=0;
// 统计各字母出现次数
int n=strlen(s);
for (i=0; i<n; i++)
{
s_i=s[i]-'a';
count[s_i]++; // 字符
}
// 输出结果
for (i=0; i<26; i++)
{
if (count[i] != 0 ) // 若该字母出现。。。
{
Letter='a'+i;
cout<<Letter<<" : "<<count[i]<<endl; // 输出字母及出现次数
}
}
}

运行示例:
输入字符串:aaddffadf
a : 3
d : 3
f : 3

如果统计的字符不止是26个小写字母,只需相应改变 cout[] 的大小就行了。本回答被网友采纳
相似回答