1152: 【作】【入门】统计字母出现次数
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:4
解决:3
题目描述
输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出,题目保证每个字母出现的次数<10)。
输入
输入只有一行,包括若干个字符。
输出
输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。
样例输入 复制
abdceeef.
样例输出 复制
abcdef
111131
提示
思路:
第一步:准备长度为200的计数数组
第二步:每个字母出现的次数,就统计在该字母对应的编码的下标中 s =“acdcc”第三步:
循环97~97+25,如果c[i]!=0,就输出下标i对应的字母;
第一步:准备长度为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;
}