牛客刷题笔记
题目源于华为机试在线训练专题
第一次写博客,想记录下自己在学习过程中的一些收获。
很多知识和方法来源于网上的诸多大神,在此记录学习。
题目
写出一个程序,接受一个由字母和数字组成的字符串str,和一个字符ch,然后输出输入字符串中含有该字符的个数。不区分大小写。
自己的思路
很简单嘛,直接用for循环遍历字符串;
但是这里不区分大小写,所以若ch是大写,则把它变成小写ch1;小写同理;
最后同时判断str中的单个字符是否于==ch||ch1
代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
int cnt=0;
char ch;
char ch1;
while(cin>>str>>ch){
if(ch>='a'&&ch<='z'){
ch1=ch-32;
}
else if(ch>='A'&&ch<='Z'){
ch1=ch+32;
}
}
for(int i=0;i<str.size();++i){
if(str[i]==ch||str[i]==ch1){
++cnt;
}
}
cout<<cnt;
return 0;
}
一些小笔记
1.while(cin>>str>>ch):只要输入值有效,就执行while内的循环
2.看到其他大神直接用count(str.begin(),str.end(),ch)判断,更加直接,不过要加头文件#include