写一个比较朴素的回答:

  1. 首先定义一个函数,用于判断字符是否是字母,也就是和a,A之类的进行比较,如果是字母就返回true
  2. 然后就是,大小写字母之间的转换,ASCII码 a:97 A:65 ,大写 = 小写 - 32;将输入的字母对应的大(小)写存储,用于后续的判断;
  3. 遍历字符串,如果是字母,进行判断,count + 1;

cpp代码

#include<iostream>
#include<string>
class Solution {
public:
    static bool isCharacter(char ch) {
        if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z')
            return true;
        return false;
    }
    static int characterCount(std::string& str, char ch) {
        char CH;
        int count = 0;
        if (ch >= 'a' && ch <= 'z') CH = ch - 32;
        if (ch >= 'A' && ch <= 'Z') CH = ch + 32;
        for (auto c: str) {
            if (isCharacter(c)) {
                if (c == ch || c == CH) 
                    count++;
            }
        }
        return count;
    }
};

int main() {
    //输入的是包含数字 字母 空格 ,输入的字母可能是大写也可能是小写
    // ASCII A 65 a 97 大小写之间转换 +32
    std::string myStr;
    char ch;
    std::getline(std::cin, myStr);
    std::cin.get(ch);
    std::cout << Solution::characterCount(myStr, ch) << std::endl;
    return 0;
}