第一种解法: 注意读数据用的是:getline 大写A是65,小写a是97;
#include<iostream> #include<string> using namespace std; int main() { string line; getline(cin,line); char a; cin>>a; char a1; if(a>=97&&a<=128) a1=a-32; int size=0; for(int i=0;i<line.size();i++) { if(line[i]==a||line[i]==a1) size++; } cout<<size<<endl; return 0; }第二种解法: map 注意点 map
#include<iostream> #include<string> #include<map> using namespace std; int main() { string line; getline(cin,line); char a; cin>>a; char a1; if(a>=97&&a<=128) a1=a-32; map<char,int>counts; for(int i=0;i<line.size();i++) { counts[line[i]]++; } cout<<(counts[a]+counts[a1])<<endl; return 0; }第三种: 用getchar()
#include<iostream> #include<map> using namespace std; int main(0 { map<char,int>words; char ch; while(ch=getchar()) { if(ch=='\n') break; else words[ch]++; } cin>>ch; cout<<words[ch]<<endl; return 0; }