字母统计-PTA

BUPT大一上习题

北邮VC++实验题 字母统计

题目描述

从键盘输入一行或几行字符串,行数由键盘输入,一行字符串用字符数组存储。请统计所输入的字符串中26个字母(不区分大小写)出现的次数,并将出现次数非零的字母统计结果输出到屏幕上,格式参见样例。如果没有字母,请输出字符串中无字母。

提示

注意:输入行数后,换行再输入字符串。

样例

样例输入 #1

1
2
1
I come quickly !

样例输出 #1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
c:2
e:1
i:2
k:1
l:1
m:1
o:1
q:1
u:1
y:1

样例输入 #2

1
2
1
1

样例输出 #2

1
字符串中无字母。

解答

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
using namespace std;
int main()
{
    int a[27]={0};
    char s[500];
    int n;
    cin>>n;
    cin.get();
    for(int i=1;i<=n;i++)
    {
        int z;
        //cin.get();
    cin.getline(s,500);
    z=strlen(s);
    for(int i=0;i<=z;i++)
    {
        if(s[i]>='a'&& s[i]<='z')
        {
            a[s[i]-'a']++;
        }
        if(s[i]>='A'&& s[i]<='Z')
        {
            a[s[i]-'A']++;
        }
    }
    }
        bool bon=false;
    for(int i=0;i<26;i++)
    {
        if(a[i]!=0){cout<<char(i+'a')<<":"<<a[i]<<endl;bon=true;}
    }
    if(bon==false)cout<<"字符串中无字母。";
}
Progress Infinite!
使用 Hugo 构建
主题 StackJimmy 设计