P9471题解

· · 题解

题意

给定一个长度为 8 的字符串 s,统计 s 中大小写字母和数字字符的个数。

本题可以使用字符数组或 string 类型,这里给出两种方法代码,代码如下。

1. 使用数组

#include <bits/stdc++.h>
using namespace std;

char s[10];
int num, big, small;//num记录数字出现个数,big记录大写字母,small记录小写字母。

int main()
{
    scanf("%s", s);//读入。
    for (int i = 0; i < strlen(s); i++)//循环查找每一个字符
    {
        if ('0' <= s[i] && s[i] <= '9') num++;//数字
        else if ('a' <= s[i] && s[i] <= 'z') small++;//小写字母
        else if ('A' <= s[i] && s[i] <= 'Z') big++;//大写字母
    }
    printf("%d %d %d\n", num, small, big);//输出
    return 0;
}

2. 使用 string 类型

#include <bits/stdc++.h>
using namespace std;

int num, big, small;
string s;//定义string类型,要写#include <string>,这里因为使用了万能头,就不加了。

int main()
{
    cin >> s;//cin读到空格结束,如果要读取整行,使用getline(cin, s);。
    for (int i = 0; i < s.size(); i++)
    {
        if ('0' <= s[i] && s[i] <= '9') num++;
        else if ('a' <= s[i] && s[i] <= 'z') small++;
        else if ('A' <= s[i] && s[i] <= 'Z') big++;
    }
    printf("%d %d %d\n", num, small, big);//输出
    return 0;
}