请补充这个编程使它能完成题目“输入一串小写字母组成的字符串,按字母表顺序输出各个字母出现的次数。”// map::find #include <iostream> #include <map> #include <string> #include <vector> using namespace std; void count(string str,int a[]){ } int main () { string str; cin>>str; int a[26]={0}; count(str,a); for(int i=0;i<26;i++) if(a[i]>0){ char ch='a'+i; cout<<ch<<" "<<a[i]<<endl; } return 0; }
时间: 2023-11-27 21:54:54 浏览: 145
输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数(C语言代码)
可以使用STL中的map来实现,具体代码如下:
```c++
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;
void count(string str, map<char, int>& m){
for(int i=0;i<str.length();i++){
if(m.find(str[i]) == m.end()){
m[str[i]] = 1;
}else{
m[str[i]]++;
}
}
}
int main () {
string str;
cin>>str;
map<char, int> m;
count(str, m);
for(auto p : m){
cout<<p.first<<" "<<p.second<<endl;
}
return 0;
}
```
在count函数中,使用map来记录每个字母出现的次数。在遍历字符串时,如果当前字母在map中不存在,则将其加入map,并将出现次数初始化为1;否则,将其出现次数加1。最后,在主函数中遍历map输出结果。
阅读全文