这道题没见过用 char(i + 'a' )来表示输出字符,这个记录一下
本题考核字符串的应用。编写一个函数,统计一个英文段落中英文26个字母的频度(26个字母不区分大小写,频度是指出现的次数),在主程序中实现输入一个英文段落、然后调用该函数计算26个字母的频度,在主函数中输出26个字母的频度。
输入格式:
输入在一段英文段落(已回车键为结束段落)。
输出格式:
输出26行:
A--Z的频度
输入样例:
在这里给出一组输入。例如:
ABCDEFGHIJKLMNOPQRSTUVWXYZ now you see, I can say my ABC. abcdefghijklmnopqrstuvwxyz
输出样例:
在这里给出相应的输出。例如:
'A' or 'a' :5
'B' or 'b' :3
'C' or 'c' :4
'D' or 'd' :2
'E' or 'e' :4
'F' or 'f' :2
'G' or 'g' :2
'H' or 'h' :2
'I' or 'i' :3
'J' or 'j' :2
'K' or 'k' :2
'L' or 'l' :2
'M' or 'm' :3
'N' or 'n' :4
'O' or 'o' :4
'P' or 'p' :2
'Q' or 'q' :2
'R' or 'r' :2
'S' or 's' :4
'T' or 't' :2
'U' or 'u' :3
'V' or 'v' :2
'W' or 'w' :3
'X' or 'x' :2
'Y' or 'y' :5
'Z' or 'z' :2
#include<bits/stdc++.h>
using namespace std;
int a[26];
int main(){
string s;
getline(cin,s);
for(int i=0;s[i]!='\0';i++){
if(s[i]>='A'&&s[i]<='Z'){
s[i]=tolower(s[i]);
}
}
for(int i=0;s[i]!='\0';i++){
if(s[i]>='a'&&s[i]<='z'){
a[s[i]-'a']++;
}
}
for(int i=0;i<26;i++){
cout<<"'"<<char(i+'A')<<"' or '"<<char(i+'a')<<"' :"<<a[i]<<endl;
}
return 0;
}