写一个比较朴素的回答:
- 首先定义一个函数,用于判断字符是否是字母,也就是和
a,A之类的进行比较,如果是字母就返回true; - 然后就是,大小写字母之间的转换,ASCII码
a:97A:65,大写 = 小写 - 32;将输入的字母对应的大(小)写存储,用于后续的判断; - 遍历字符串,如果是字母,进行判断,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;
} 
京公网安备 11010502036488号