C语言检错,查一下,只错一点点,实在找不了错哪里了

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:58:17
#include <stdio.h>
#include <string.h>
main()
{
char *p;
int i,a=0,b=0,c=0,d=0;
printf("please input\n");
p=getchar();
gets(p);
while(*p!='\0')
{
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))
a+=1;
else if(*p==' ')
b+=1;
else if(*p>='0'&&*p<='9')
c+=1;
else
d+=1;
p++;
}
printf("%d %d %d %d\n",a,b,c,d);
getch();
}

找出来指正一下,谢谢了
是输出的什么,好像输入的第一个不计数,不知道怎么回事.
题目是要求计字符里的字母,数字.空格,其它符号个数

#include <stdio.h>
#include <string.h>
int main()
{
char pp[1024];
char *p;
int a=0,b=0,c=0,d=0;
printf("please input\n");
gets(pp);
p=pp;
while(*p!='\0')
{
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))
a+=1;
else if(*p==' ')
b+=1;
else if(*p>='0'&&*p<='9')
c+=1;
else
d+=1;
p++;
}
printf("%d %d %d %d\n",a,b,c,d);
getchar();
return 0;
}