c语言关于isalpha(a)使用问题

#include
#include

int main()

{

char a;
int x=0,y=0,z=0;

while((a=getchar())!='\n')

{if(isalpha(a)==1)x++;

else if(isdigit(a)==1)y++;

else z++;

}

printf("字母数=%d,数字数=%d,其他字符数=%d\n",x,y,z);

return 0;

}

这段代码我输入aaaa 为什么输出的是其他字符是4??

isalpha(a) :判断字符ch是否为英文字母,若为小写字母,返回2,若为大写字母,返回1。若不是字母,返回0。
C语言中的if 的参数如果不是0就都为真,只有0才是假,所以if的判断不用使用==

注意isalpha的用法及【返回值】,若是a为字符,则返回非零值(注意不是1),若不是字符,返回0.

把=1都去掉

 if(isalpha(a)==1)x++;

else if(isdigit(a)==1)y++;