目录
C++字符串反转
一、题目要求
1、编程实现
2、输入输出
二、算法分析
三、程序编写
四、程序说明
五、运行结果
六、考点分析
七、推荐资料
C++字符串反转
第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题
一、题目要求
1、编程实现
给定一个只包含大写字母"M”和”W"的字符串(字符串长度小于100),然后对字符串中位置为偶数的字符进行反转(M反转为W,W反转为M;字符串中左边第1个字符位置为1)
例如:原字符串为"WMMW",反转后为"WWMM”
2、输入输出
输入描述:输入一个只包含大写字符"M"和“W"的字符串(字符串长度小于100)
输出描述:输出一个字符串,表示对原字符串中位置为偶数的字符反转后的字符串
输入样例:
WMMW
输出样例:
WWMM
二、算法分析
- 从给定题目的初步分析可以看出,这是一道字符串相关题目
- 实现题目要求可以有多种方式,可以使用字符串string,也可以使用字符数组char完成
- 小兔子老师这里采用string的方式进行实现,逐个遍历每个字符进行一一校验匹配
三、程序编写
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
for (int i = 0; i < int(s.size()); i++)
{
//字符串左边第一位开始为第一个数字,正常输出
if (i % 2 == 0)
cout << s[i];
else if (s[i] == 'W')
cout << 'M';
else
cout << 'W';
}
return 0;
}
四、程序说明
- 首先需要导入输入输出流头文件
- 接着再次导入字符串string头文件
- 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
- 接着声明程序的入口,也就是主函数(主函数在一个程序中只允许出现一次)
- 根据题目要求声明一个字符串变量s
- 然后利用输入流对象cin,从键盘读取变量s的值
- 然后利用for循环逐个便利字符串s里面的每一个字符,之所以s.size()函数用int进行强制转换,因为size函数返回的是无符号整型,所以转换成int类型
- 然后利用多分支语句if-else if-else语句对每一个元素按要求进行输出
- 最后返回0,程序结束
本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102
五、运行结果
WMMW
WWMM
六、考点分析
难度级别:容易,这题相对而言还是比较简单的,具体主要考查如下:
- 充分掌握变量的定义和使用
- 学会输入流对象cin的使用,从键盘读入相应的数据
- 学会for循环的使用,在确定循环次数的时候推荐使用学会
- 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
- 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
- 学会if...else if...else...多分支语句的使用,满足不同的条件执行不同的处理程序
- 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
- 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
- 充分掌握字符串的定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!
七、推荐资料
- 所有考级比赛学习相关资料合集【推荐收藏】