C++实现写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:
aaaAbcdA
A
输出:
2
思路:
字符串包含空格数字和字母,我们可以先分为两类空格和非空格,然后对于非空格里我们可以分为数字和字母,注意,‘0’~'9’的ASCII值是48-57 ,并且题目要求了不区分大小写,如果我们将字母和数字判断混在一起,那么如果我们输入:1212ABCQ和1,我们的判断语句为:if(s[i]==a||s[i]==a+32||s[i]==a-32),那么,’1‘的ASCII值为48,48+32=81,是Q的ASCII值,所以判断结果会是3(11Q),所以我们不能将数字和字母混为一起,
#include<iostream>
#include<string>
using namespace std;
//'0'~'9'的ASCII值是48~57
int main()
{
string s;
char a;
getline(cin,s);
int len=s.length();
cin>>a;
char *p=&s[0];
int count=0;
for(int i=0;i<len;i++){
if(a!=' '){
if((int)a>=48&&int(a)<=57){
if(s[i]==a){
count++;
}
}
else{
if(s[i]==a||s[i]==a+32||s[i]==a-32){
count++;
//cout<<s[i]<<endl;
}
}
}
else{
if(s[i]==a){
count++;
}
}
}
cout<<count;
}
运行结果截图: