第一行输入一个长度
,由大小写字母、数字和空格混合构成的字符串
。保证首尾不为空格。
第二行输入一个字符
,代表需要统计的字符。
在一行上输出一个整数,代表字符
在字符串
中出现的次数。
HELLONowcoder123 o
3
由于
为小写字母,因此统计其小写形态出现的次数和,即
。
H E L L O Nowcoder123 1
1
#include <iostream> #include <string> using namespace std; int main() { string input; char s,m; getline(cin, input); cin>>s; m=s; if('A'<=s<='z') { if('A'<=s&&s<='Z') m=s+32; else if('z'>=s&&s>='a') m=s-32; int count=0; int length=input.size(); for(int i=0;i<length;i++) { if(input[i]==s||input[i]==m) { count++; } } cout<<count<<endl; } return 0; }
/* 注意大小写转换*/ #include<iostream> (720)#include<string> using namespace std; int main(){ string input1,input2,input3; int k=0; while(cin>>input1&&cin>>input2); if('a'<=input2[0]&&'z'>=input2[0]) input3=input2[0]-32; if('A'<=input2[0]&&'Z'>=input2[0]) input3=input2[0]+32; for(int i=0;i<input1.length();i++){ if(input2[0]==input1[i]||input3[0]==input1[i]) ++k; } cout<<k<<endl; return 0; }
#include <iostream> #include <string> using namespace std; int main(void) { string s1; char s2; int num=0,i=0,j=0; getline(cin,s1); cin >> s2; num=s1.size(); for ( i = 0; i < num; i++) { if (s1[i]>='A' && s1[i]<='Z') { s1[i] = s1[i] + 32; } if (s2>='A' && s2<='Z') { s2 = s2 + 32; } if (s1[i] == s2 ) { j++; } } cout <<j <<endl; return 0; }
import java.util.Scanner; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str=sc.next().toUpperCase(); String s=sc.next().toUpperCase(); List<String> list=new ArrayList<String>(); Collections.addAll(list, str.split("")); int a=list.size(); while(list.contains(s)) { list.remove(s); } System.out.println(a-list.size()); } }
var readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var lines = []; var countLine=1; rl.on("line", function(line) { //将输入放到新建的空数组中 lines.push(line); if(countLine==2){ var str=lines[0].trim().toLowerCase(); var c=lines[1].trim().toLowerCase(); var count=0; var index=0; while(str.indexOf(c,index)!==-1&&index<str.length){ index=str.indexOf(c,index)+1; count++; } countLine=1; lines=[]; console.log(count); } else{ countLine++; } });
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i = 0;
string str;
char a;
cin >> str;
cin >> a;
/因为不区分大小写,所以先全部统一成大写,再进行比较/
//将str和a都转换成大写
for (auto &s : str)
s=toupper(s);
a = toupper(a);
/用范围for循环将str的每个字符与a进行比较
,与a相等则i+1/
for (auto s : str)
{
if (s == a)
i++;
}
cout << i << endl;//输出i;
return 0;
}
#include<iostream> #include<string> #include<cmath> using namespace std; int PrintCharNum(string &str, char c) { int count = 0; for (int i = 0; i<str.size(); i++) { if (abs(str[i] - c) == 0 || abs(str[i] - c) == 32) count++; } return count; } int main() { string str; char c; getline(cin, str); cin >> c; cout << PrintCharNum(str, c) << endl; return 0; }大小写字母相差32,可以用其差的绝对值来进行条件判定。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int sum;
int main()
{
string a;
char b;
cin>>a>>b;
int len=a.length();
while(len--)
if(a[len]==b||a[len]==b+32||a[len]==b-32)sum++;
cout<<sum;
return 0;
}
#include <iostream> #include <string> using namespace std; int main() { string str; getline(cin,str); char end = 0; cin>>end; //换行输入,那么最后一个字符就是end int len=str.size(); char End=str[len-1];//没有换行输入的最后一个字符 int num=0; for(int i=0;i<len-1;++i) { if(end !=0) //有换行输入 { if(end>='a') { if(str[i]==end || str[i]==end-32) num++; } else { if(str[i]==end || str[i]==end+32) num++; } } else //输入只有一行 { if(End>='a') { if(str[i]==End || str[i]==End-32) num++; } else { if(str[i]==End || str[i]==End+32) num++; } } } cout<<num; return 0; }
//注意字母大小写和cin.get()消除上个输入中残留的换行符 #include <iostream> #include <string> using namespace std; int main(){ string str; char s; while(getline(cin,str)){ int count=0; cin>>s; for(int i=0;i<str.length();i++){ if(str[i]==s||str[i]+32==s||str[i]-32==s) count++; } cout<<count<<endl; cin.get(); } return 0; }
}
}
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int findCharNums(string str, char goal) {
if (str.size() <= 0)
return -1;
vector<int> cols(256, 0);
if (goal >= 'a' && goal <= 'z') {// 小写
goal -= 32;// 转换为大写
}
for (int i = 0; i < str.size(); ++i) {
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] -= 32;
}
cols[str[i]]++;
}
return cols.at(goal);
}
int main()
{
string input;
cin >> input;
char target;
cin >> target;
cout << findCharNums(input, target) << endl;
return 0;
}
} 对string进行操作的时候注意下标,另外本题需要注意大小写转换的问题
}