思路

这道题拿到之后第一时间就会想到遍历整个字符串。

于是有了这样的解法:

Java版本解法

import java.util.Scanner;

public class Main {

    public int convert(String str, String flag) {
        String src = str.toLowerCase();
        char[] chars = src.toCharArray();
        char c = flag.toLowerCase().charAt(0);
        int num = 0;
        for (char aChar : chars) {
            if (aChar == c) {
                num++;
            }
        }
        return num;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Main main = new Main();
        while (in.hasNext()) {
            String str = in.nextLine();
            String str1 = in.nextLine();
            System.out.println(main.convert(str, str1));
        }
    }
}

C语言版本解法

#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define SIZE 500

int main() {
    char array[SIZE];
    gets(array);
    char target = getchar();
    int count = 0, len = strlen(array);
    for (int i = 0; i < len; i++)
    {
        if (toupper(array[i]) == toupper(target))
        {
            count += 1;
        }
    }
    printf("%d\n", count);
    return 0;
}

事实证明同样的算法,还是C语言有速度优势