字母统计-map

时间:2023-03-08 21:20:42

题目描述

输入一行字符串,计算其中A-Z大写字母出现的次数

输入描述:

案例可能有多组,每个案例输入为一行字符串。

输出描述:

对每个案例按A-Z的顺序输出其中大写字母出现的次数。
示例1

输入

复制

DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK

输出

复制

A:0
B:0
C:0
D:3
E:2
F:5
G:0
H:0
I:1
J:4
K:2
L:3
M:0
N:1
O:0
P:0
Q:1
R:0
S:2
T:0
U:0
V:0
W:1
X:0
Y:0
Z:0
#include<iostream>
#include<stdio.h>
#include<map>
#include<string.h>
using namespace std;
#define n 10000
char s[n];
map<char,int> mp;
int main(){
while(scanf("%s",&s)!=EOF){
int len=strlen(s);
for(int i=;i<len;i++){
if(s[i]>='A'&&s[i]<='Z'){
mp[s[i]]++;
}
}
for(int i=;i<;i++){
if(mp.find('A'+i)==mp.end()){
printf("%c:0\n",'A'+i);
}else{
printf("%c:%d\n",'A'+i,mp['A'+i]);
}
}
mp.clear();
}
return ;
}

//这道题着实是很简单的一道题,用map实现即可,要知道map的几个操作,当key不存在时,如果用的话,就直接对应的value时0;并且查找map中一个关键字是否存在直接用map.find(关键字),如果存在则返回指向其的一个iterator,否则就指向map.end()。最后每次都要对map进行clear();