C++中怎样统计一个单词中每个字母出现次数

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:34:30
如上,
本人是初学者
最好有注释
谢谢

char str[100];
int a[128]={0};//用一个数组记录每个ASCII字符出现的次数(当然在这只需记录大小写英文字母),初始化为0;
cin>>str;
for(int i=0;str[i]!='\0';i++)
a[str[i]]++;//通过ASCII码在对应的数组元素中加1;如str=‘a’,则a[97]++,
a['a']和a[97]是一样的,因为字符也相当于整数,
如果要输出大写或小写字母的出现次数,只需这样查询输出就可以,如cout<<a['A'],cout<<['a'],等等;

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[1001];//instore the string
cin>>str;
int sum[26];//用sum存放每个字母对应的出现次数
int i;
for(i=0;i<26;++i)
sum[i]=0;
for(i=0;i<strlen(str);++i)
sum[str[i]-'a']++;//字母每出现一次,对应的sum[i]加1;
//比如str[i]是字母a,则'a'-'a'=0;sum[0]++
for(i=0;i<26;++i)
cout<<char(i+'a')<<" : "<<sum[i]<<endl;//char(i+'a')为sum[i]对应的字母
return 0;
}

#include<stdio.h>

void&