注册 登录
编程论坛 C++教室

新手请教一个关于统计字符个数的问题

amogod55 发布于 2010-01-03 16:52, 944 次点击
题目:有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符个数。下面是我写的程序:
#include <iostream>
using namespace std;
int main()
{
    char a[3][20]={{"Hello! 001"},{"Hi~ 002"},{"Ni hao@ 003"}},c;
    int i,j,upp=0,low=0,digit=0,space=0,other=0;
    for(i=0;i<3;i++)
    {
        for(j=0;j<20;j++)
            if((c=a[i][j])!='\0')
            {
                if(c>='A'&&c<='Z')
                    upp++;
                else if(c>='a'&&c<='z')
                    low++;
                else if(c>='0'&&c<='9')
                    digit++;
                else if(c=' ')
                    space++;
                else other++;
            }
            else break;
    }
    cout<<"upp="<<upp<<",low="<<low<<",digit="<<digit
        <<",space="<<space<<",other="<<other<<endl;
    return 0;
}

这个程序运行后,最后统计的空格个数(space)和其他字符个数(other)不正确,请教各位能解释下程序哪里出现问题了么?
1 回复
#2
kspliusa2010-01-03 18:57
回复 楼主 amogod55
else if(c=' ') --> else if (' ' == c)
            常量放在前面就不容易错了!
1