华为在线笔试题 接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:
第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:
输出输入字符串中含有该字符的个数。

示例1
输入

ABCDEF
A
输出

1
解题思路:获取输入的字符串,遍历第一个字符串看是否有输入的字符,注意题目要求不区分大小写。

#include 
#include 

int main()
{
    char arr[5000];//测试程序的输入会很大,所以将数组设置的大一点
    char brr;
    int a = 0,b = 0;
    fgets(arr,5000,stdin);//从标准输入获取第一串字符
    brr = getchar();//获取第二个字符,getchar函数只能获取一个字符
    while(a != strlen(arr)-1)//strlen记得减一
    {
        if(arr[a] == brr || arr[a]-brr == 32 || arr[a]+32 == brr)//不区分大小写
        {
            b++;
        }
        a++;
    }
    printf("%d\r\n",b);
    return 0;
}

做C语言的字符串题还需细心,代码若可优化,请指正,辛苦谢谢!!

你可能感兴趣的:(华为在线笔试题 接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。)