写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

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;
}

运行结果截图:在这里插入图片描述


版权声明:本文为HYK_DJ5201314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。