输入一句话,只有英文,有空格,怎样统计每个字母出现的次数? 比如:I like playing tennis 其中 i有4个,l有两个。。等等
最新回答
我污但不色
2025-06-21 11:42:15
编个程序,例如以下是查找字母i个数的程序。 char a[]="I like playing tennis." int i=0; int i_num=0; while(a[i]!='\0') //当这一串数组没结束。 { if (a[i]=='i')i_num++ //对字符串进行遍历,如果发现某个字母是i,那么i_num自加。i_num中的数就是字符串中i出现的个数。 } cout<<"i_num="<<i_num<<endl; 如果你要输入其他的数据,可以先定义一个字符数组存放。如 char input[50]; 然后在程序里用cin.getline(input,50);读入 。 其中50表示最大可能输入的字符个数,可以自己更改 头文件只要#include<iostream>就行。
枫熙槿晨
2025-06-21 09:01:06
//给出使用标准库的版本,不用标准库的话使用for循环和数组挨个字符判断
#include <iostream> #include <map> using namespace std;
void main() { map<char,int> Counter;
const char* input = "I like playing tennis"; const char* p = input; do { if(Counter.find(*p) != Counter.end()) Counter[*p] = Counter[*p]+1; else Counter[*p] = 1; } while(*(++p));
Counter.erase(' ');
for (map<char,int>::iterator i = Counter.begin();i!= Counter.end(); ++i) { cout<<i->first<<":"<<i->second<<endl; }
}
獨刹の創始人
2025-06-21 08:02:37
#include <iostream> #include<map> #include<string> #include<cstring> using namespace std; int main() { int n; cin>>n; while(n--) { string s; cin>>s; map<char,int> a; int i; for(i=0;i<s.length();i++) { if(a.find(s[i])!=a.end()) ++a[s[i]]; else a[s[i]]=1; } map<char,int> ::iterator t; for(t=a.begin();t!=a.end();t++) { cout<<(*t).first<<":"<<(*t).second<<endl;; }