请编写一个程序,利用指针计算某一个字符串中有多少小写字母,大写字母,空格,数字,其他字符

#include<stdio.h>
#include<string.h>
int main(){
char *p;
int a=0,b=0,c=0,d=0,e=0;
char ch[100];
printf("shiruzifuchuan ");
while(*p!='\0'){
if(*p>='A'&&*p<='Z')a++;
else if(*p>='a'&&*p<='z')b++;
else if(*p>='0'&&*p<='9')c++;
else if(*p==' ')e++;
else d++;
p++;
}
printf("大写字母:%d\n小写字母:%d\n数字:%d\n其他字符:%d\n空格: %d\n",a,b,c,d,e);
return 0;
}
指针那里错了,求指导要怎么改

#include<stdio.h>
#include<string.h>
int main(){
char *p;
int a=0,b=0,c=0,d=0,e=0;
char ch[100];
printf("shiruzifuchuan ");
gets(ch);
p=ch;
while(*p!='\0'){
if(*p>='A'&&*p<='Z')a++;
else if(*p>='a'&&*p<='z')b++;
else if(*p>='0'&&*p<='9')c++;
else if(*p==' ')e++;
else d++;
p++;
}
printf("大写字母:%d\n小写字母:%d\n数字:%d\n其他字符:%d\n空格: %d\n",a,b,c,d,e);
return 0;
}
温馨提示:答案为网友推荐,仅供参考