请问这个为什么输出的是这个结果

请问这个为什么会输出这个结果
怎么样才能使输出的是1是字符个数4是小写字母个数呢

img

是要统计字符串中数字和字母的个数吗
虽然你定义了20个字符的数组,但是cin得到的并不一定是20个字符,for循环中,不应该用 i<20,应该用 a[i] !='\0'
代码修改如下:

#include <iostream>
using namespace std;

int main()
{
    char a[20];
    int number_1 = 0;  //所有数字字符和字母个数
    int number_2 = 0;  //数字字符个数
    int number_3 = 0;  //大写字母个数
    int number_4 = 0;  //小写字母个数
    cin >> a;
    for(int i=0;a[i]!='\0';i++)  //for循环的条件改成  a[i] != '\0'
    {
        if(a[i]<'9' && a[i]>='0')
        {
            number_1++;
            number_2++;
        }else if(a[i]>='A' && a[i]<='Z')
        {
            number_1++;
            number_3++;
        }else if(a[i]>='a' && a[i]<='z')
        {
            number_1++;
            number_4++;
        }
    }
    cout << number_1<<" "<<number_2<<" " << number_3 <<" "<< number_4<<endl;  //这里的输出之间加了空格
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632