我下面的程序编译没问题,可答案老是不正确,英文字母、空格、数字的个数多一倍,而其它字符的个数在我的电脑上
显示为62,我一直不明白为什么会这样?请高手帮帮忙。顺便说一下,当我不用指针,用s=getchar()就不会有这种问题。
#include "stdio.h"
void main(void)
{char *s;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
gets(s);
while(*s++!='\n')
{
if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z')
letters++;
else if(*s==' ')
space++;
else if(*s>='0'&&*s<='9')
digit++;
else
others++;
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,
space,digit,others);
}