1059: 【作】【入门】统计字符的个数
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:35
解决:16
题目描述
从键盘中任意输入一串字符,直至输入"#"字符代表结束.请编程统计输入的字符中的大写字母,小写字母和数字字符的个数分别是多少?
输入
输入只有一行,包括一串字符.(长度小于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; }