为什么不能出结果啊

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:04:19
这段代码是统计字符串中空格,大小写字母的个数等等,但每次都内存出错,请各位帮我看一下,谢谢
#include<iostream.h>
#include<stdio.h>
void counte(char *s)
{
char c;
int letter(0),space(0),digit(0),other(0);
while((c=*s++)!='/0')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c==' ') space++;
else if(c>='0'&&c<='9') digit++;
else other++;
}
cout<<"字母数= "<<letter<<endl
<<"数字数= "<<digit<<endl
<<"空格数= "<<space<<endl
<<"其它字符数 "<<other<<endl;
}
void main()
{
char str[100];
cout<<"请输入一个字符串: "<<endl;
gets(str);
counte(str);
}

“while((c=*s++)!='/0')”出错了, c=*s++这个表达式的值只能是0或者1,不可能是其他值,你这个循环根本无法跳出,你把它改为“while((c=*s++)&&c!='/0') ”就可以了,我试了一下,没什么问题,如果你用的是VS,为了看到最终显示的结果,可以加一条system("pause")语句。