ASCII码
2026-07-29 11:55:07
发布于:湖北
28阅读
0回复
0点赞
(一)字符转换问题详解
题目分析
题目要求
给定一个字符串,按照以下规则转换每个字符:
| 字符类型 | 转换规则 | 示例 |
|---|---|---|
| 大写字母 | 变成对应的小写字母 | A→a, B→b, Z→z |
| 小写字母 | 变成对应的大写字母 | a→A, b→B, z→Z |
| 数字 | 变成星号 | 0→*, 1→*, 9→* |
样例解析
输入:
5
aBc98
转换过程:
字符: a B c 9 8
类型: 小写 大写 小写 数字 数字
转换: A b C * *
输出: AbC**
解题思路
方法1:逐个字符判断
遍历字符串的每个字符,判断其类型并进行相应转换:
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
string s;
cin >> n >> s;
for (int i = 0; i < n; i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
// 大写字母 → 小写
s[i] = s[i] +32;
} else if (s[i] >= 'a' && s[i] <= 'z') {
// 小写字母 → 大写
s[i] = s[i] -32;
} else if (s[i] >= '0' && s[i] <= '9') {
// 数字 → *
s[i] = '*';
}
}
cout << s << endl;
return 0;
}
关键知识点
1. 字符的ASCII码特性
'A' ~ 'Z' : 65 ~ 90
'a' ~ 'z' : 97 ~ 122
'0' ~ '9' : 48 ~ 57
大小写转换规律:
'a' - 'A' = 32
所以:
大写→小写:ch + 32 或 ch - 'A' + 'a'
小写→大写:ch - 32 或 ch - 'a' + 'A'
2. 常用字符函数(<cctype>)
| 函数 | 功能 | 示例 |
|---|---|---|
isupper(ch) |
判断是否为大写字母 | isupper('A') → true |
islower(ch) |
判断是否为小写字母 | islower('a') → true |
isdigit(ch) |
判断是否为数字 | isdigit('5') → true |
toupper(ch) |
转大写 | toupper('a') → 'A' |
tolower(ch) |
转小写 | tolower('Z') → 'z' |
总结
这道题考察的核心能力:
- 字符类型判断
- ASCII码理解
- 字符串遍历与修改
- 条件分支逻辑
全部评论 1

2026-07-30 来自 广东
0




有帮助,赞一个