2026年6月GESP真题及题解(C++三级):字符转换

📅 2026/7/2 17:13:04 👁️ 阅读次数 📝 编程学习
2026年6月GESP真题及题解(C++三级):字符转换

2026年6月GESP真题及题解(C++三级):字符转换

题目描述

小杨同学有一串字符,里面可能有:

  • 大写字母,比如A AAB BBC CC
  • 小写字母,比如a aab bbc cc
  • 数字,比如0 001 112 22

现在小杨同学想把这串字符变一变,规则如下:

  1. 如果是大写字母,就变成对应的小写字母;
  2. 如果是小写字母,就变成对应的大写字母;
  3. 如果是数字,就变成*

请你按照这个规则,帮小杨把整串字符转换好。

输入格式

输入一共有2 22行。

第一行:一个整数,表示这串字符一共有多少个字符。

第二行:一串连续的字符,中间没有空格。

输出格式

输出转换后的字符。

注意:输出时字符之间不要加空格。

输入输出样例 #1
输入 #1
5 aBc98
输出 #1
AbC**
说明/提示

原来的字符是:

aBc98

从左到右一个一个看:

  1. a aa是小写字母,所以变成A AA
  2. B BB是大写字母,所以变成b bb
  3. c cc是小写字母,所以变成C CC
  4. 9 99是数字,所以变成*
  5. 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;}

功能分析

  1. 输入处理cin >> n >> s读取长度和字符串,因为字符串无空格,故可完整读入。

  2. 字符判断:利用 ASCII 码范围区分大写、小写、数字。

  3. 转换操作

    • 大写→小写:s[i] - 'A' + 'a'(例如'B'66 - 65 + 97 = 98 →'b'
    • 小写→大写:s[i] - 'a' + 'A'(例如'c'99 - 97 + 65 = 67 →'C'
    • 数字→'*':直接赋值。
  4. 输出:按顺序输出修改后的字符串。


各种学习资料,助力大家一站式学习和提升!!!

#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;}