字符统计

如果单纯遍历s[i]直到问号,通过率为百分之五十(原因:使用cin >> s;只能读取不含空格的一串字符),而且会报段错误。

#include<iostream>

#include<string>//包含getline

#include <cctype> // 包含isalpha函数的声明,可以用来检查给定的字符是否为字母。

//isdigit()函数来检查每个字符是否为数字(0-9)

using namespace std;

/*使用cin >> s;只能读取不含空格的一串字符。

如果想要处理包含空格的字符串,则需要使用getline(cin, s)

*/

int main(){

string s;

getline(cin, s); // 使用getline来读取一整行,包括空格

int Letters=0;

int Digits=0;

int Others=0;

int i=0;

for (char c : s) { // 使用范围for循环遍历字符串中的每个字符

if(c == '?') break; // 遇到问号停止计数

if(isalpha(c)){

Letters += 1;

}

else{

if(isdigit(c)){

Digits+=1;

}

else Others+=1;

}

}

cout<< "Letters="<<Letters<<endl;

cout<< "Digits="<<Digits<<endl;

cout<< "Others="<<Others<<endl;

}

全部评论

相关推荐

一表renzha:不是你说是南通我都没往那方面想,人家真是想表达那个意思吗?
点赞 评论 收藏
分享
Twilight_m...:还是不够贴近现实,中关村那块60平房子200万怎么可能拿的下来,交个首付还差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务