1814 - 字母统计
时间限制 : 3 秒
内存限制 : 128 MB
给定一段字符,统计其中的英文字母a~z的数量,不分大小写。
题目输入
输入为一行字符,长度小于1000。
题目输出
从a到z顺序输出字母的数量,没有出现的字母就不要输出了。
输入/输出样例
输入格式
Hello every one.
输出格式
e:4 h:1 l:2 n:1 o:2 r:1 v:1 y:1
C语言解答
#include <stdio.h> #include <string.h> char S[1001], alpha[26]; int main(){ int i, len; gets(S); len = strlen(S); for(i = 0; i < len; i++){ if(S[i]<='z' && S[i]>='a') alpha[S[i]-'a']++; else if(S[i]<='Z' && S[i]>='A') alpha[S[i]-'A']++; } for(i = 0; i < 26; i++) if(alpha[i]) printf("%c:%d\n", i+'a', alpha[i]); return 0; }
C++解答
#include<iostream> #include<cstring> #include<cctype> using namespace std; int main(){ int a[26]={0}; char s[1000] ; gets(s); for(int ix=0;ix!=strlen(s);ix++){ s[ix]=tolower(s[ix]); a[int(s[ix]-'a')]++; } for(int i=0;i<26;i++){ if(a[i]!=0){ char x=char(i+'a'); cout<<x<<":"<<a[i]<<endl; } } }