从键盘输入一个字符串存放在数组中,字符串的长度小于20,统计其中的英文字符、数字字符、空格和其他字符的个数

从键盘输入一个字符串存放在数组中,字符串的长度小于20,统计其中的英文字符、数字字符、空格和其他字符的个数
求大家指点

#include <stdio.h>
int main()
{
    char s[21] = {0};
    int a=0,b=0,c=0,d=0,i=0;
    gets(s);
    while(s[i] != 0)
    {
        if((s[i] >='a' && s[i] <='z') || (s[i]>='A' && s[i]<='Z'))
            a++;
        else if(s[i]>='0' && s[i] <='9')
            b++;
        else if(s[i] == ' ')
            c++;
        else
            d++;
        i++;
    }
    printf("英文%d个,数字%d个,空格%d个,其它%d个",a,b,c,d);
}