1059: 【作】【入门】统计字符的个数
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:36
解决:17
题目描述
从键盘中任意输入一串字符,直至输入"#"字符代表结束.请编程统计输入的字符中的大写字母,小写字母和数字字符的个数分别是多少?
输入
输入只有一行,包括一串字符.(长度小于20)
输出
输出只有一行(这意味着末尾有一个回车符号),包括3个整数。分别代表大写字符,小写字符和数字字符的个数。
样例输入 复制
daDSALDdcada3240#
样例输出 复制
5 7 4
提示
解法一:
字符数组
#include<bits/stdc++.h>
using namespace std;
int main(){
/*
思路:遍历字符数组的每个字符,逐个判断是大写、小写还是数字
*/
char s[30];
//d:统计大写,x:统计小写,n:统计数字
int i,d = 0,x = 0,n = 0;
//读入
cin>>s;
//循环每个字符,逐个判断类型
for(i = 0;i < strlen(s);i++){
//如果是大写字符
if(s[i] >= 'A'&& s[i]<= 'Z'){
d++;
}else if(s[i] >= 'a' && s[i]<= 'z'){
x++;
}else if(s[i]>= '0'&& s[i] <= '9'){
n++;
}
}
cout<<d<<" "<<x<<" "<<n<<endl;
return 0;
}
解法二:
字符串
#include <bits/stdc++.h>
using namespace std;
int c1,c2,c3;
string s;
int main(){
getline(cin,s);
for(int i = 0;i<s.size();i++){
//如果是大写字母
if(isupper(s[i])){
c1++;
} else if(islower(s[i])){
c2++;
}else if(isdigit(s[i])){
c3++;
}
}
cout<<c1<<" "<<c2<<" "<<c3;
return 0;
}