B2109题解

· · 题解

题目要求求出字符串里的数字字符个数,可以根据字符的 ASCII 码来判定。

if (s[i] <= '9' && s[i] >= '0')
    cnt++;

这里我使用了 C++ 独有的 string 类型的字符串。

在读入时需要注意,如果你写成这样:

cin >> s;

那么你就只能获得 50 分,因为字符串中有空格,需要整行读入。

AC Code:

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    getline(cin, s);//要用 getline
    int cnt = 0;
    for (int i = 0; i <= s.length() - 1; i++){//注意范围
        if (s[i] <= '9' && s[i] >= '0')//判断
            cnt++;
    }
    cout << cnt << endl;
    return 0;
}