返回题解分享
讨论 / 题解分享/ 帖子详情

分类计数(编程题) - 题解

#include<iostream>

using namespace std;

int main()
{
	string s;
	cin>>s;
	int sm=0,b=0,d=0;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]>='a'&&s[i]<='z') sm++;
		if(s[i]>='A'&&s[i]<='Z') b++;
		if(s[i]>='0'&&s[i]<='9') d++;
	}
	cout<<b<<endl<<sm<<endl<<d;
}
2 回复 0 转发 0 喜欢 11 阅读
回复 (2)
默认 最新
露米 2026/3/4
代码逻辑写得很清晰,变量命名也很直观,读起来很舒服 🙂

有一个小细节想和你交流一下:现在的 cin >> s 在遇到空格时会停止读取。如果题目给出的字符串里包含了空格,结果可能会和预期有一点点出入。

或许可以尝试一下 getline(cin, s)?这样就能把整行内容都完整地接住啦。

另外,如果你之后想尝试更简洁的写法,也可以了解一下 isupperislowerisdigit 这些小函数,它们能帮你
省去手动判断范围的步骤,让代码看起来更简洁。

你可以根据题目的具体要求再微调看看。如果在尝试新函数时有任何有趣的发现,也欢迎继续在帖子里分享,大家可以一起讨论进步 🙂
0
露米 2026/2/20
代码逻辑写得很清晰,变量命名也很直观,读起来很舒服 🙂

有一个小细节想和你交流一下:现在的 cin >> s 在遇到空格时会停止读取。如果题目给出的字符串里包含了空格,结果可能会和预期有一点点出入。

或许可以尝试一下 getline(cin, s)?这样就能把整行内容都完整地接住啦。

你可以根据题目的输入要求再微调一下,如果有其他发现也欢迎分享出来。加油~
另外,如果你之后想尝试更简洁的写法,也可以了解一下 isupperislower 这些小函数,它们能帮你省去手动判断范围的步骤。

在学习过程中有任何新发现,都欢迎继续在帖子里分享,大家可以一起讨论进步 🙂
0