总体思路是: 先判断输入的字符是否是字母,若是,再判断字符串每个字符是否是字母,若不是直接跳过本次循环,若是,再进行判断。 若输入的字符不是字母,我们就直接遍历字符串一一遍历即可 isalpha()函数是判断一个字符是否是字母,是则返回一个大于0的值,不是则返回0.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
    char arr[1001];
    char c = 0;
    int count = 0;
    gets(arr);
    scanf("%c",&c);
    for(int i = 0; i < strlen(arr); i++)
    {
       if(isalpha(c))
       {
           if(isalpha(arr[i]))
           {
               if(arr[i] == c || arr[i] + 32 == c ||arr[i] - 32 == c)
               {
                   count++;
               }
           }
           else
               continue;
       }
        else
        {
            if(arr[i] == c)
            {
                count++;
            }
        }
    }
    printf("%d",count);
    return 0;
}