写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围:
package main import ( "strings" "fmt" "bufio" "os" ) func main() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() str := scanner.Text() scanner.Scan() targetChar := scanner.Text() array := strings.Split(str, "") count := 0 for _, char := range array { if strings.ToLower(char) == strings.ToLower(targetChar) { count ++ } } fmt.Println(count) }
#include <iostream> using namespace std; int main() { string str; char c; getline(cin, str); cin >> c; int count[128] = {0}; for (int i=0; i<str.size(); i++) { count[str[i]]++; } if (c >= 65 && c <= 90) { cout << count[c] + count[c+32] << endl; } else if (c >= 97 && c <= 122) { cout << count[c] + count[c-32] << endl; } else{ cout << count[c] << endl; } }
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 判断character是否大写字母 bool is_upper(const char c) { return c >= 65 && c <= 90; } // 判断character是否小写字母 bool is_lower(const char c) { return c >= 97 && c <= 122; } // 判断是不是字母 bool is_letter(const char c) { return is_lower(c) || is_upper(c); } // 大写字母转小写字母 char to_lower(const char c) { // boundary case if (!is_letter(c) || is_lower(c)) return c; return c ^ 1 << 5; } int main(const int argc, const char** argv) { char s[501] = ""; fgets(s, 501, stdin); char ch = to_lower(fgetc(stdin)); int cnt = 0; const char* p = s; while (*p) cnt += to_lower(*p++) == ch; return fprintf(stdout, "%d", cnt), 0; }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner input = new Scanner(System.in); String s = input.nextLine(); String wanted = input.nextLine(); Map<Character,Integer> map = new HashMap<Character,Integer>(); for(int i=0; i<s.length(); i++){ char aim = s.charAt(i); if(map.containsKey(aim)){ int times = map.get(aim) +1; map.put(aim,times); } else{ map.put(aim,1); } }//build a hashmap char wantedChar = wanted.charAt(0); int sumTime = 0; if(wantedChar>='A'&& wantedChar<='Z' && map.containsKey(wantedChar)){ sumTime += map.get(wantedChar); if(map.containsKey((char)(wantedChar+32))){ sumTime += map.get((char)(wantedChar+32)); } }else if(wantedChar>='a' && wantedChar<='z' && map.containsKey(wantedChar)){ sumTime += map.get(wantedChar); if(map.containsKey((char)(wantedChar-32))){ sumTime += map.get((char)(wantedChar-32)); } }else if(wantedChar>='0' && wantedChar<='9' && map.containsKey(wantedChar)){ sumTime += map.get(wantedChar); } System.out.println(sumTime); } }用了HashMap
#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<stdio.h> #include<string.h> int main() { char str[1000]; char ch; gets(str); ch = getchar(); if(islower(ch)) { ch = ch - 'a' + 'A'; } int i = 0; int count = 0; while('\0' != str[i]) { if(islower(str[i])) { str[i] = str[i] - 'a' + 'A'; } if(ch == str[i]) { count++; } i++; } printf("%d",count); 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; }