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

这个字符串的程序哪里不正确 求指正 谢谢!

终止节奏 发布于 2015-04-01 16:32, 515 次点击
题目:输入十个字符,统计其中大写字母,小写字母,数字字符,空格和其他字符的个数。

样例输入
abc123## A
样例输出
1 3 3 1 2

=====================================================
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a;
    int i;
    int num1=0,num2=0,num3=0,num4=0,num5=0;
    cin>>a;
    for(i=0;i<=9;i++)
    {
        if(a[i]>='A'&&a[i]<='Z')
        {
            num1++;
        }
        else
        {
            if(a[i]>='a'&&a[i]<='z')
            {
                num2++;
            }
            else
            {
                if(a[i]>='0'&&a[i]<='9')
                {
                    num3++;
                }
                else
                {
                    if(a[i]==' ')
                    {
                        num4++;
                    }
                    else
                    {
                        num5++;
                    }
                }
            }
        }
    }
    cout<<num1<<' '<<num2<<' '<<num3<<' '<<num4<<' '<<num5<<endl;
    return 0;
}
5 回复
#2
诸葛欧阳2015-04-01 20:32
if(a[i]>=0&&a[i]<=9)不要单引号
#3
yangfrancis2015-04-01 21:27
加单引号怎会错?
#4
yangfrancis2015-04-01 21:35
问题在于不让输入空格,只要一有空格就完蛋。但暂时不知解决办法
#5
yangfrancis2015-04-01 21:49
#include <iostream>
using namespace std;
int main()
{
    char a[11];
    int i;
    int num1=0,num2=0,num3=0,num4=0,num5=0;
    cin.get(a,11);
    for(i=0;i<=9;i++)
    {
        if(a[i]>='A'&&a[i]<='Z')
        {
            num1++;
        }
        else
        {
            if(a[i]>='a'&&a[i]<='z')
            {
                num2++;
            }
            else
            {
                if(a[i]>='0'&&a[i]<='9')
                {
                    num3++;
                }
                else
                {
                    if(a[i]==' ')
                    {
                        num4++;
                    }
                    else
                    {
                        num5++;
                    }
                }
            }
        }
    }
    cout<<num1<<' '<<num2<<' '<<num3<<' '<<num4<<' '<<num5<<endl;
    return 0;
}
摆弄了好一阵。这样可以了,好像只能char数组才认识,一用string就报错。
#6
api1632015-04-19 20:24
string是类,不能当数组用
1