2026年6月GESP真题及题解(C++三级):字符转换
2026年6月GESP真题及题解(C++三级):字符转换
题目描述
小杨同学有一串字符,里面可能有:
- 大写字母,比如A AA、B BB、C CC
- 小写字母,比如a aa、b bb、c cc
- 数字,比如0 00、1 11、2 22
现在小杨同学想把这串字符变一变,规则如下:
- 如果是大写字母,就变成对应的小写字母;
- 如果是小写字母,就变成对应的大写字母;
- 如果是数字,就变成
*。
请你按照这个规则,帮小杨把整串字符转换好。
输入格式
输入一共有2 22行。
第一行:一个整数,表示这串字符一共有多少个字符。
第二行:一串连续的字符,中间没有空格。
输出格式
输出转换后的字符。
注意:输出时字符之间不要加空格。
输入输出样例 #1
输入 #1
5 aBc98输出 #1
AbC**说明/提示
原来的字符是:
aBc98从左到右一个一个看:
- a aa是小写字母,所以变成A AA;
- B BB是大写字母,所以变成b bb;
- c cc是小写字母,所以变成C CC;
- 9 99是数字,所以变成
*; - 8 88是数字,所以变成
*。
所以最后输出:
AbC**数据范围
字符个数不会超过1000 10001000个。
每个字符只会是大写字母、小写字母或数字。
思路分析
题目要求按规则转换字符:大写→小写,小写→大写,数字→*。
为避免直接使用 ASCII 码数值(如 +32),我们改用字符偏移计算:
- 大写转小写:
s[i] = s[i] - 'A' + 'a';
原理:将字符相对'A'的偏移量,加上'a'的 ASCII 值。 - 小写转大写:
s[i] = s[i] - 'a' + 'A';
原理:将字符相对'a'的偏移量,加上'A'的 ASCII 值。 - 数字直接赋值为
'*'。
其他处理逻辑不变:读入长度n和字符串,遍历前n个字符,判断类型并修改,最后输出整个字符串。
代码实现
#include<bits/stdc++.h>usingnamespacestd;intn;string s;intmain(){cin>>n>>s;// 读入长度和字符串for(inti=0;i<n;i++){// 逐个处理if(s[i]>='A'&&s[i]<='Z')// 大写字母s[i]=s[i]-'A'+'a';elseif(s[i]>='a'&&s[i]<='z')// 小写字母s[i]=s[i]-'a'+'A';elseif(s[i]>='0'&&s[i]<='9')// 数字s[i]='*';}cout<<s;return0;}功能分析
输入处理:
cin >> n >> s读取长度和字符串,因为字符串无空格,故可完整读入。字符判断:利用 ASCII 码范围区分大写、小写、数字。
转换操作:
- 大写→小写:
s[i] - 'A' + 'a'(例如'B'66 - 65 + 97 = 98 →'b') - 小写→大写:
s[i] - 'a' + 'A'(例如'c'99 - 97 + 65 = 67 →'C') - 数字→
'*':直接赋值。
- 大写→小写:
输出:按顺序输出修改后的字符串。
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}【秘籍汇总】(完整csp信奥赛C++学习资料):
1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):
https://edu.csdn.net/lecturer/7901 点击跳转
2、CSP信奥赛C++竞赛拿奖视频课:
https://edu.csdn.net/course/detail/40437 点击跳转
https://edu.csdn.net/course/detail/41081 点击跳转
3、csp信奥赛高频考点知识详解及案例实践:
CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转
CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转
信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转
4、csp信奥赛冲刺一等奖有效刷题题解:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转
信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转
信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转
5、GESP C++考级真题题解:
GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转
GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转
GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转
· 文末祝福 ·
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}