C++ 初学者:分离墙上混乱大小写 ASCII 码字母串的代码详解
```cpp #include <iostream> #include <string> using namespace std; int main() { int n; // 读取混合字串的总长度 cin >> n; string input; // 读取包含大小写字母的字符串 cin >> input; // 再读取一次相同的字符串,不过这一行读取在本题逻辑里不影响结果 cin >> input; // 用于存储大写字母的字符串 string uppercaseLetters = ""; // 用于存储小写字母的字符串 string lowercaseLetters = ""; // 遍历输入的字符串 for (int i = 0; i < n; i++) { // 判断字符是否为大写字母 if (input[i] >= 'A' && input[i] <= 'Z') { // 如果是大写字母,添加到存储大写字母的字符串中 uppercaseLetters = uppercaseLetters + input[i]; } // 判断字符是否为小写字母 else if (input[i] >= 'a' && input[i] <= 'z') { // 如果是小写字母,添加到存储小写字母的字符串中 lowercaseLetters = lowercaseLetters + input[i]; } } // 输出筛选后的大写字母串 cout << uppercaseLetters << endl; // 输出筛选后的小写字母串 cout << lowercaseLetters << endl; return 0; } ``` 代码解释 1. 输入部分: - `cin >> n;`:从控制台读取一个整数 `n`,它代表混合字符串的总长度。 - `cin >> input;`:读取一行包含大小写字母的字符串。 - 又一次 `cin >> input;`:这里再次读取一行相同的字符串,但在本题后续逻辑里没有实际作用,只是按照输入要求进行读取。 2. 变量声明: - `string uppercaseLetters = "";`:定义一个空字符串 `uppercaseLetters`,用来存放筛选出来的大写字母。 - `string lowercaseLetters = "";`:定义一个空字符串 `lowercaseLetters`,用来存放筛选出来的小写字母。 3. 遍历字符串: - 使用 `for` 循环遍历输入的字符串 `input`。 - 在循环里,通过 `if` 语句判断当前字符是否为大写字母(`input[i] >= 'A' && input[i] <= 'Z'`),如果是,就把它添加到 `uppercaseLetters` 中。 - 通过 `else if` 语句判断当前字符是否为小写字母(`input[i] >= 'a' && input[i] <= 'z'`),如果是,就把它添加到 `lowercaseLetters` 中。 4. 输出结果: - `cout << uppercaseLetters << endl;`:输出筛选后的大写字母串。 - `cout << lowercaseLetters << endl;`:输出筛选后的小写字母串。 复杂度分析 - 时间复杂度:$O(n)$,这里的 $n$ 是输入字符串的长度。因为只需要对输入字符串进行一次遍历。 - 空间复杂度:$O(n)$,主要是用来存储筛选后的大写字母串和小写字母串。 ######[AI问答 | 733点数解答 | 2025-12-05 19:27:58]
- Python 实现:输入字符输出 ASCII 码及开发注意要点(字节豆包 | 151点数解答 | 2025-10-13 11:35:51)141
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)235
- C语言实现:从压缩字符串还原出原始字符串的代码解析(字节豆包 | 299点数解答 | 2024-11-10 19:31:07)283
- C语言:从“长度+字母”压缩串还原原始字符串的代码实现(GPT | 600点数解答 | 2024-11-14 18:24:57)172
- C语言实现:从压缩字符串到解压字符串的巧妙转换(讯飞星火 | 638点数解答 | 2024-11-14 18:25:06)309
- C++ 初学者搞定小鱼“比可爱”计数难题:代码详解与复杂度分析(字节豆包 | 553点数解答 | 2026-02-07 18:59:03)49
- 过年期间光头强面临的美人松查询问题的C++解法(字节豆包 | 425点数解答 | 2026-02-24 19:53:50)20
- 狗熊岭美人松查找问题的 C++ 实现(字节豆包 | 683点数解答 | 2026-02-24 19:56:05)20
- Python开发必知:ASCII、Unicode、UTF - 8与GBK的区别大揭秘(阿里通义 | 356点数解答 | 2023-11-08 00:51:36)198
- C语言实现字符串复制与按 ASCII 表升序排序:代码详解(讯飞星火 | 662点数解答 | 2024-11-26 19:54:33)116
- 不使用<string.h>,实现字符串按 ASCII 升序排序并存储(讯飞星火 | 542点数解答 | 2024-11-27 08:14:06)108
- C语言实现字符串复制与按 ASCII 表升序排序,代码详解!(讯飞星火 | 823点数解答 | 2024-11-27 08:18:56)113