第一种解法:
注意读数据用的是: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;
}