批量处理数据程序设计-F文章统计

链接:https://ac.nowcoder.com/acm/contest/93961/F链接:https://ac.nowcoder.com/acm/contest/93961/F

来源:牛客网

有一篇文章,共有三行文字,每行有80个字符,要求分别统计出英文大写字母,小写字母,数字,空格以及其他字符的个数。

输入描述:

共有三行字符串a, b, c,长度均不超过100。

输出描述:

共5个整数,分别为英文大写字母,小写字母,数字,空格以及其他字符的个数。

示例1

输入

This is a boy.

He is 7 years.

He was born in 2013.

输出

3 27 5 10 3

这道题说让你找字符串中各个字符种类的个数,先把三个字符串加在一起,方便一会统计个数,for(char p:d)是用来遍历字符串d里每一个字符(这里每一个字符就是p),接下来使用if语句,将数据统计起来。但是要注意,当最后统计其他字符时,有些人会发现输出数据跟期望值不同那是因为使用 if 语句接下来要使用 else if 过度,结果才能是我们想要的3;如果用的都是 if ,结果会出现38,是因为最后程序将所有不属于空格的字符都归进了其他类,就比如正确的代码就像一堆苹果,每次拿出一部分,剩下的就是最后想要的。如果没有用 else if 就相当于每次拿出来后又放进去了,最后还会省下很多。

#include<iostream>

#include<string>

getline(cin,a);

getline(cin,b);

getline(cin,c);

string d=a+b+c;

int t1=0,t2=0,t3=0,t4=0,t5=0;

for(char p:d){

if(p>='A'&&p<='Z'){

t1++;

}

else if(p>='a'&&p<='z'){

t2++;

}

else if(p>='0'&&p<='9'){

t3++;

}

else if(p==' '){

t4++;

}

else{t5++;}

}

cout<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<" "<<t5<<endl;

return 0;

}

全部评论

相关推荐

宁德时代 结构工程师 24W 本科985
点赞 评论 收藏
分享
亚信安全 前端实习 160一天
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务