首页 > 试题广场 >

计算某字符出现次数

[编程题]计算某字符出现次数
  • 热度指数:1286927 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围:

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。



输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例1

输入

ABCabc
A

输出

2
推荐
import java.util.*;
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        String all="";
        String one="";
        char[] ac;
        char temp;
        int num=0;
        while(s.hasNext())
        {
            //s.toUpperCase(),String 转化为大写
            //s.toLowerCase(),String 转化为小写
            //String字符转换,s.toCharArray()与s.charAt(index)
            //char字符转换,String.valueOf(c)转化为String
        	all=s.nextLine();
            one=s.nextLine();
            //存放原来所有的
            ac=all.toCharArray();
            //存放要的字符
            //temp=one.charAt(0);
            for(int i=0;i<ac.length;i++)
            {
            	if(one.equalsIgnoreCase(String.valueOf(ac[i])))    
                    num++;
            }
            System.out.println(num);
        }
        
    }
    
}

编辑于 2017-03-04 16:05:10 回复(45)
  public static void main(String[] args) {
        String ster="ABCabc".toLowerCase();
        int count=0;
        for(int i=0;i<ster.length();i++){
            int index=ster.substring(i,i+1).indexOf("a");
            if(index!=-1){
                count++;
            }
        }
        System.out.println(count);
    }
发表于 2022-07-13 15:08:23 回复(1)
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)
}

发表于 2022-02-24 10:03:09 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String one = scanner.nextLine().toLowerCase();
        String two = scanner.next().toLowerCase();
        int count=0;
        for (int i = 0; i < one.length(); i++) {
            char c = one.charAt(i);
            boolean b = two.equalsIgnoreCase(String.valueOf(one.charAt(i)));
            if (b){
                count=count+1;
            }
        }
        System.out.println(count);
    }
}
发表于 2022-02-11 09:26:45 回复(0)
#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;
    }
}
发表于 2022-01-12 22:26:15 回复(0)
#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;
}

发表于 2021-07-16 15:01:24 回复(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
发表于 2021-03-04 10:59:21 回复(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;
}


发表于 2021-02-14 21:59:09 回复(0)
var str_1 = readline(); //获取第一行内数据 ABCabc
var str_2 = readline(); //获取第二行内数据 A
var num_need = 0;  //记录包含的个数
let need_Lower = str_2.toLowerCase();
let need_Bigger = str_2.toUpperCase();
for(let item of str_1){
    if(item == need_Lower || item == need_Bigger){
        num_need++
    }
}
console.log(num_need)

或者
var str_1 = readline(); //获取第一行内数据 ABCabc
var str_2 = readline(); //获取第二行内数据 A
var num_need = 0;  //记录包含的个数
let need_Lower = str_2.toLowerCase();
let need_Bigger = str_2.toUpperCase();
for(let item of str_1){
    if(str_1[i] == need_Lower || str_1[i] == need_Bigger){
        num_need++
    }
}
console.log(num_need)
发表于 2021-01-09 19:35:28 回复(0)
 来个C的:
#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;
}

编辑于 2021-01-22 16:40:04 回复(0)
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
 string a;
 getline(cin,a);
 char b;
 cin>>b;
 int c=0;
 for(int i=0;i<a.size();i++)
 {
  if(a[i]>='A'&&a[i]<='Z')
  {
   a[i]+=32;
  }
 }
 for(int i=0;i<a.size();i++)
 {
  if(a[i]==b)
  {
   c++;
  }
 }
 cout<<c<<endl;
 return 0;
 }
发表于 2020-08-28 17:06:21 回复(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);
            }
        }
    }

编辑于 2020-08-08 12:28:08 回复(0)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {


    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String line1 = bufferedReader.readLine();
        String line2 =  bufferedReader.readLine();
        char[] chars = line1.toUpperCase().toCharArray();
        int count = 0;
        char[] chars1 = line2.toUpperCase().toCharArray();
        for (char aChar : chars) {
            if (chars1[0]== aChar) {
                count ++;
            }
        }

        System.out.println(count);

    }
}

发表于 2020-05-28 23:15:27 回复(0)
#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;
}

编辑于 2020-04-27 22:46:20 回复(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;
}


发表于 2020-02-28 12:06:05 回复(0)
//主要是输入流和大小写的处理,是c语言~tolower用法感谢上面给的题解 
#include<stdlib.h>
#include<ctype.h>
int main(){
char str[10000];
char need;
int i,j,count;
i = 0;
count = 0;
while ((str[i] = getchar()) != '\n')
i++;
str[i + 1] = '\0';
scanf("%c", &need);
for(j=0;j<i;j++)
if (tolower(str[j]) == tolower(need))
{
count++;
}

printf("%d", count);
}
编辑于 2020-02-26 23:15:42 回复(1)
        Scanner scanner =new Scanner(System.in);
        String str=null;
        String charFind= null;
        if(scanner.hasNext()){
            str=scanner.nextLine().toLowerCase();
        }
        if(scanner.hasNext()){
            charFind=scanner.nextLine().toLowerCase();
        }
        String[] split = str.split(charFind);
        if (str.endsWith(charFind)){
            System.out.println(split.length);
        }else{
            System.out.println(split.length-1);
        }
发表于 2020-02-19 23:22:34 回复(0)
//暴力就完事了
#include<iostream>
#include<string>
using namespace std;
int main(){
    string s;
    char a;
    while(cin>>s>>a){
        int count=0;
        for(int i=0;i<s.size();i++){
            if(s[i]==a||s[i]-32==a||s[i]+32==a)
                count++;
    }
        cout<<count<<endl;
}
    return 0;
}
发表于 2020-02-11 13:12:51 回复(0)
function getWordCount(string,target){
    let map = {}
    for(char of string){
        map[char] ? map[char]++ : map[char] =1
    }
    if(target in map){
        return map[target]
    }
   
}

console.log(getWordCount('asdqdnqwdiuqnwdiuqwndiuqwdnqwd','d'))
JavaScript using hashtable
发表于 2020-02-04 15:55:39 回复(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;
}

发表于 2020-01-26 13:42:49 回复(0)
#-*- coding:utf-8 -*-
lstKey = [] #定义空列表用于存储多个指定字符的索引
lengthKey = 0
str = input()
key = input()
#将字符转化为小写并计算字符串中存在指定字符串的个数
str = str.lower()
key = key.lower()
countStr = str.count(key)
print(countStr)
发表于 2020-01-12 13:26:11 回复(0)