第一行输入一个长度
,由大小写字母、数字和空格混合构成的字符串
。保证首尾不为空格。
第二行输入一个字符
,代表需要统计的字符。
在一行上输出一个整数,代表字符
在字符串
中出现的次数。
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 <stdio.h> int main(void) { char s[1000] = {0}, ch, *p = s - 1; int total = 0; gets(s), scanf("%c\n", &ch); if (ch >= 'A' && ch <= 'Z') ch -= 'A' - 'a'; while (*(++p) != '\0') if (*p == ch || *p == ch + 'A' - 'a') total++; return printf("%d\n", total), 0; }
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String line = scanner.nextLine().toLowerCase(); int count = 0; if (line.matches("[0-9A-Za-z].*")) { for (int i = 0; i < 1; i++) { String charStr = scanner.nextLine(); if (charStr.length() != 1) { break; } char[] charArr = line.toCharArray(); char findCharArr = charStr.toLowerCase().toCharArray()[0]; for (int j = 0; j < charArr.length; j++) { if (charArr[j] == findCharArr) { count++; } } } System.out.println(count); } } }
/* 注意大小写转换*/ #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; }
#include <iostream> #include<string> using namespace std; int main() { char a[1000],b; int count=0; cin.get(a,1000); cin>>b; if(b>='a'&&b<='z') b=b-32; for(int i=0;a[i]!='\0';i++) { if(a[i]>='a'&&a[i]<='z') a[i]=a[i]-32; if(a[i]==b) count+=1; } cout<<count; }
//注意字母大小写和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; }
}
}