1152: 【作】【入门】统计字母出现次数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:3

题目描述

输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出,题目保证每个字母出现的次数<10)。

输入

输入只有一行,包括若干个字符。

输出

输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。

样例输入 复制

abdceeef.

样例输出 复制

abcdef
111131

提示

思路:
第一步:准备长度为200的计数数组
第二步:每个字母出现的次数,就统计在该字母对应的编码的下标中 s =“acdcc”第三步:
循环97~97+25,如果c[i]!=0,就输出下标i对应的字母;

循环 97~97+25,如果c[i]!=0,就输出该字母出现的次数c[i];

#include<bits/stdc++.h>
using namespace std;
int main(){
    char s[1000]; //有放字符串
    int c[200]= {0},i; //存放每个字母出现的次数
    int x; //获取字符对应的编码
	//读入 
    cin>>s;
    //循环计数(循环次数-1,是为了不处理最后的.) 
    for(i - 0;i < strlen(s) - 1;i++){
        x = s[i]; //得到每个字母对应的编码 
        c[x]++; //c[s[i]]++;
	}
    //输出
    //输出哪些字母出现过 
    //i = 'a';i <= 'z';i++
    for(i = 97;i <= 97 + 25;i++){
        if(c[i]!= 0){
            //把整数(编码)i强制转换为字符输出 
            cout<<(char)i;
        }
    }
    cout<<endl;
    //输出每个字母出现的次数
    for(i = 97;i <= 97 + 25;i++){
        if(c[i] != 0){
            cout<<c[i];
        }
    }
    return 0;
}