前言
正文
思路
这里需要注意一个技巧,如何将字符型的数字转换为整数型的数字==>假设char型变量c是
‘0’~‘9’的一个字符,那么它所对应的数字就是c-‘0’,其实原理就是字符c的ASCII码值减去字符’0’的ASCII码值,其差值就是整数c,同理若需要将一个整型数字c转换为相应的字符c,那么只需要c+‘0’即可。由此扩展一下可以知道将一个大写字母转换为小写字母,比如‘M’转为’m’,那么只需要‘M’-‘A’+'a’即可。
参考题解
#include<iostream>
#include<string>
using namespace std;
/*
首先使用字符串n存储输入的正整数,遍历该字符串,将每一位字符
转换为数字,即使用该字符减去'0',再用一个整型数组res来存放
下标为i的数字的出现次数,最后升序输出该数组内容即可
*/
int main(){
string n;
int res[10]={0},len;
cin>>n;
len=n.size();
for(int i=0;i<len;i++){
res[n[i]-'0']++;
}
for(int i=0;i<10;i++){
if(res[i]!=0)cout<<i<<":"<<res[i]<<endl;
}
return 0;
}