字母统计-map

题目描述

输入一行字符串,计算其中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=0;i<len;i++){
            if(s[i]>='A'&&s[i]<='Z'){
                mp[s[i]]++;
            }
        }
        for(int i=0;i<26;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 0;
}

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

posted @ 2018-06-26 20:22  lypbendlf  阅读(155)  评论(0编辑  收藏  举报