[c++]输入一起字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(写的代码有疑惑,求解求教)

[c++]输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(写的代码有疑惑,求解求教)
大家好,我已经写在我的微博,请点我的名字看?这样发着麻烦。。真心求解求教

------解决方案--------------------
主要是结束条件用错了,修正如下:
C/C++ code

#include<stdio.h>
int main()
{
char x[999];
char*p=x;
int i,a=0,b=0,c=0,d=0;
gets(x);
while(*p)
{
if('A'<=*p&&*p<='z')
a++;
else if('0'<=*p&&*p<='9')
b++;
else if(*p==' ')
c++;
else
d++;
p++;
}
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}