题解 | #计算某字符出现次数#
计算某字符出现次数
https://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1
#include<iostream>
#include<string>
//#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main() {
string s;
string a;
getline(cin,s);
cin.clear();
getline(cin,a);
char s2 = a.at(0);
char* p = &s.at(0);
int counter = 0;
while (*p!='\0')
{
//cout << *p << endl;
if (*p == s2){
counter++;
}
// cout << *p << ",";
counter++;
}
}
p++;
}
cout << counter;
return 0;
}
#include<string>
//#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main() {
string s;
string a;
getline(cin,s);
cin.clear();
getline(cin,a);
char s2 = a.at(0);
char* p = &s.at(0);
int counter = 0;
while (*p!='\0')
{
//cout << *p << endl;
if (*p == s2){
counter++;
}
/* 数字就是数字 ,字母就是字母 Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,56
为什么大写Q +32 就等于1了
*/
if ((s2 >= 'a' && s2 <= 'z') || (s2 >= 'A' && s2 <= 'Z')) {
//这里之前是((*p >= 'a' && s2 <= 'z') || ((*p >= 'A' && s2 <= 'Z')但是遇到*p=Q,s2=1就任然能够执行counter++这是为啥呀
if ((*p) + 32 == s2 || (*p) - 32 == s2) {// cout << *p << ",";
counter++;
}
}
p++;
}
cout << counter;
return 0;
}
查看3道真题和解析