B3976 [语言月赛 202405] 交题解 题解
ShiRoZeTsu · · 题解
Source & Knowledge
2024 年 5 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定一个字符串,请你去除所有非英文字母的字符,输出结果。
题目分析
首先,你需要知道什么是 ASCII 码。简单来说,就是所常见的一些英文字符,标点符号等都有一个对应的 int 值。
对于英文字母来说,所有大写字母的值按照字母顺序单调递增,所有小写字母的值按照字母顺序单调递增。
回到题目。如何判断一个字符
- 如果是大写字母,那么
c 一定满足'A' <= c && c <= 'Z'; - 如果是小写字母,那么
c 一定满足'a' <= c && c <= 'z'。
这里是用 ASCII 码的值进行比较大小。
因此可以得出解法。首先,读入这个字符串:
string s;
cin >> s;
然后直接循环遍历每一个位置上的字符。对于位置
for(int i = 0; i < s.size(); i++) {
if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))
cout << s[i];
}