题目描述
给出一个字符串S(S仅由’0’~’9’组成,且不包含空格,长度≤100),请将其各个数字按个数打印出,并且输出各个数字之和。
输入
第一个行整数N为测试数据组数。接下来N行为S。
输出
如果数字i(0≤i≤9)出现的次数大于0则输出i : Ai (Ai为i出现的次数),并在末尾输出S中各个数字的和,每组输出结束后空一行。(最后一组数据后无空行)。
样例输入
2
0012
13588
样例输出
0:2
1:1
2:1
3
1:1
3:1
5:1
8:2
25
题主可以考虑使用map,具体的输入输出可以自己修改,下面是具体的思路。
string s;
cin>>s;
map<char,int>m;
for(int i=0;i<s.length();i++){
m[s[i]]++;
}
map<char,int>::iterator it;
for(it=m.begin();it!=m.end();it++){
cout<<it->first<<":"<<it->second<<endl;
}