为什么可以输入字符串 但是没有结果


#include<stdio.h>
void count(char *a,int*dx, int*xx, int*num , int*kg, int*qt)
{
    while (*a)//遍历字符串
    {
        if (*a >= 'A' && *a <= 'Z')
            (*dx)++;
        else if (*a >= 'a' && *a <= 'z')
            (*xx)++;
        else if (*a >= '0' && *a <= '9')
            (*num)++;
        else if (*a ==" ")
            (*kg)++;
        else (*qt)++;
    }
}
int main() 
{
    int dx = 0, xx = 0, num = 0, kg = 0, qt = 0;
    char a[20];
    gets(a);
    count(a,&dx,&xx,&num,&kg,&qt);
    printf("大写字母个数=%d\n小写字母个数=%d\n数字的个数=%d\n空格的个数=%d\n其他的个数=%d", dx, xx, num, kg, qt);
}

供参考:

#include<stdio.h>
void count(char *a,int*dx, int*xx, int*num , int*kg, int*qt)
{
    while (*a)//遍历字符串
    {
        if (*a >= 'A' && *a <= 'Z')
            (*dx)++;
        else if (*a >= 'a' && *a <= 'z')
            (*xx)++;
        else if (*a >= '0' && *a <= '9')
            (*num)++;
        else if (*a == ' ')// if (*a == " ") 字符是单引号 修改
            (*kg)++;
        else (*qt)++;
        a++;        // 指针遍历,a 需要自增    修改
    }
}
int main()
{
    int dx = 0, xx = 0, num = 0, kg = 0, qt = 0;
    char a[20];
    gets(a);
    count(a,&dx,&xx,&num,&kg,&qt);
    printf("大写字母个数=%d\n小写字母个数=%d\n数字的个数=%d\n空格的个数=%d\n其他的个数=%d",
                                                                       dx, xx, num, kg, qt);
    return 0;
}

因为死循环了,函数while循环末尾要加上a++;才行
a指针在while循环中没有改变,程序死循环