关于一道C++的题目

1.笔芯去打区域赛了,良昊非常无聊,于是决定统计出某本英文书中26个英文字母每个出现的次数。Input第一行包括一个正整数T,表示有T组测试数据。每组测试数据有一行,包含... 1.笔芯去打区域赛了,良昊非常无聊,于是决定统计出某本英文书中26个英文字母每个出现的次数。
Input
第一行包括一个正整数T,表示有T组测试数据。
每组测试数据有一行,包含一行字符串,字符串长度不超过10^6。
Output
每一组输入数据对应多行输出,按顺序输出A-Z出现的个数(统计时同一字母大小写算同一种),每一种字母占一行,若某种字母出现的个数为0,则跳过。每组数据输出之间有一个空行。
Sample Input
3
DDdd
AaBbDd
Hellow world!
Sample Output
D 4 A 2B 2D 2 D1 E 1H 1L 3O 2R 1W 2
展开
 我来答
White_MouseYBZ
推荐于2016-11-11 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6437万
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include <iostream>
#include <string>
using namespace std;
void main(void){
string str;
int num[26],ln,i,T;
char ch;
cout << "How many sets of data?\nT=";
cin >> T;
while(T--){
fflush(stdin);
cout << "Enter a string: ";
str="";
while((ch=cin.get())!='\n')
str+=ch;
for(i=0;i<26;num[i++]=0);
for(ln=str.length(),i=0;i<ln;i++)
if(isalpha(str[i]))
num[(str[i]|0x20)-97]++;
for(i=0;i<26;i++)
if(num[i])
cout << (char)('A'+i) << ": " << num[i] << endl;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式