0
点赞
收藏
分享

微信扫一扫

统计英文段落的字母频度

萨摩斯加士奇 2022-05-06 阅读 67
c++

这道题没见过用   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;
}
举报

相关推荐

0 条评论