else的位置为什么会不对?
下面的这个程序是统计字母,数字.空格.还有其它字符的个数.....相信大家都比较熟吧.....不知道 为什么会出现这样的错误 ....总是提示最后一个ELSE在位置出错.....不知道为什么...我找了很久...没发现什么错的..请各位帮忙找一下....
int letter=0,digit=0,space=0,others=0;
void caculate(char *p)
{ int i;
for(i=0;i<=strlen(p);i++)
{if((*(p+i)>='a'&&*(p+i)<='z')||(*(p+i)>='A'&&*(p+i)<='Z'))
letter++;
else if(*(p+i)>='0'&&*(p+i)<='9')
digit++;
else if(*(p+i)==' ');
space++;
else others++;
}
}
main()
{char a[100];
printf("input the string:\n");
gets(a);
caculate(a);
printf("letter:%d digit:%d space:%d others:%d\n",letter,digit,space,others);
getch();
}