位置互换
题目描述
给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换。
输入描述
输入包含多组测试数据。
输入的第一行是一个整数n,表示有测试数据。(整个输入中,只有一个n)
接下来是n组测试数据,保证串长为偶数位(串长<=50)。
输出描述
请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。
输入示例
2
0aa0
bb00
输出示例
a00a
bb00
C++解析
#include <iostream>
#include <string>
using namespace std;
void swap(char &a ,char &b){
char temp = a;
a = b ;
b = temp ;
}
int main(){
int n ;
cin >> n;
string s;
while(n--){
cin >> s; //接收字符串
for(int i = 0; i < s.size()-1; i += 2){ //奇偶数之间交换,迭代步长为2
swap(s[i],s[i+1]); //调用交换函数,完成字符串交换
}
cout << s << endl;
}
}
关键知识点:数值之间的交换要引入第三个变量,使用交换函数形参是引用的,奇偶交换之间的循环要知道对称交换的迭代步长。