ou_fan的代码:
Description |
修罗王和邪狼潜入银行盗走了大量魔法石,并狂妄地留下一行字符,声称魔法石的下落就藏在这行字符中。警探们绞尽脑汁不得其解,只好求助魔法学院的师生,经魔法学院师生研究发现,只要分别统计出这行字符中的英文字母、空格、数字和其他字符的个数即是被盗魔法石的坐标。 |
Input |
有多组数据,第一行一个正整数t(t<100)表示输入数据组数,接下来有t组输入数据,每组数据占1行,输入为一行字符串。 |
Output |
对于每组数据输出一行,包含四个整数,统计出这行字符中的英文字母、空格、数字和其他字符的个数,用空格隔开,行末不包含空格。 |
Sample Input |
1 A1 ? |
Sample Output |
1 1 1 1 |
#include<bits/stdc++.h>
using namespace std;
string s;
int main() {
int t;
cin >> t;
getchar();
while (t--) {
getline(cin, s);
int num1 = 0, num2 = 0, num3 = 0, num4 = 0;
for (int i = 0;i < (int)s.size();i++) {
if (islower(s[i]) || isupper(s[i])) num1++;
else if (s[i]==' ') num2++;
else if (isdigit(s[i])) num3++;
else if (!isalnum(s[i]) || s[i] == ' ') num4++;
}
cout << num1 << ' ' << num2 << ' ' << num3 << ' ' << num4 <<endl;
}
}
注意:谨记isdigit和isalnum,isupper,islower的用法;方便解答题目;