描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围: 1≤n≤1000
输入
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例
输入:
ABCabc
A
输出:2
我的代码(C++)
#include <iostream>
#include <vector>
using namespace std;
int main() {
string str;
char chr;
bool isnum = false;
getline(cin, str);
cin >> chr;
int ascii_code = (int)chr;
int ascii_code2;
if (ascii_code >= 48 && ascii_code <= 57){ // 数字
isnum = true;
}else if(ascii_code >= 65 && ascii_code <= 90){ // 大写字母
ascii_code2 = ascii_code + 32;
}else if(ascii_code >= 97 && ascii_code <= 122){ // 小写字母
ascii_code2 = ascii_code - 32;
}
vector<char> vec(str.begin(), str.end());
int cnt = 0;
if(isnum){
for(int i=0;i<vec.size();i++){
if (vec[i] == chr){
cnt++;
}else{
continue;
}
}
}else{
for(int i=0;i<vec.size();i++){
if (int(vec[i]) == ascii_code || int(vec[i]) == ascii_code2){
cnt++;
}else{
continue;
}
}
}
cout << cnt;
}
执行情况
时间:4ms
内存:460KB
我的感想
暴力就完事了。(看来要记住ASCII码表呀!)
起码要记住:
字符 | ascii |
---|---|
0 | 48 |
9 | 57 |
A | 65 |
Z | 90 |
a | 97 |
z | 122 |