题目描述
读入一英文句子(没有大写字母),单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率。(句子末尾不一定用"."结束)
输入
只有一行,内容为一行英文句子(没有大写字母),英文句子的长度不超过100个字符,单词间由空格或逗号隔开。
输出
第一行输出单词个数n,第二行开始每行表示一个字母出现的次数,未出现的字母不输出统计结果。
样例输入 复制
abc abc abc, abc , abc ,
样例输出 复制
5
a 5
b 5
c 5
参考代码:
#include<bits/stdc++.h>
using namespace std;
int b[28];
int main()
{
char a[10001];
cin.getline(a,10001);
int k=strlen(a),s=1;
if(a[0]==' '||a[0]==',')
s=0;
for(int i=0;i<k;i++)
{
if((a[i-1]==','&&a[i]!=' '&&a[i]!=',')||(a[i-1]==' '&&a[i]!=' '&&a[i]!=','))
s++;
if(a[i]>='a'&&a[i]<='z')
b[a[i]-96]++;
}
cout<<s<<endl;
for(int i=1;i<=26;i++)
{
if(b[i]!=0)
cout<<char(i+96)<<" "<<b[i]<<endl;
}
}