cpp
#include<bits/stdc++.h>
using namespace std;
int main() {
string arr;
// 输入一行字符串
getline(cin, arr);
string btt;
for(int i=arr.length()-1;i>=0;i--){
char a=arr[i]+3; // 对当前字符进行加密,向后移动三位
if(arr[i]>=88 and arr[i]<=90) { // 如果当前字符是'X'、'Y'、'Z'中的一个
a=arr[i]-23; // 解密时向前移动23位
}else if(arr[i]>=120 and arr[i]<=122){ // 如果当前字符是'x'、'y'、'z'中的一个
a=arr[i]-23; // 解密时向前移动23位
}
if(a>90){ // 如果加密后的字符超过了大写字母范围
a-=32; // 将其转换为小写字母
cout<<a; // 输出解密后的字符
}else{
a+=32; // 将加密后的字符转换为大写字母
cout<<a; // 输出解密后的字符
}
}
return 0;
}
该段代码实现了一个简单的字符加密和解密功能。首先,通过getline(cin, arr)
语句从标准输入读取一行字符串。然后,从字符串的最后一个字符开始,向前遍历。对于每个字符,使用char a=arr[i]+3
将其往后移动三位。如果字符是大写字母'X'、'Y'、'Z'中的一个,则将其解密后的字符设为原字符减去23;如果字符是小写字母'x'、'y'、'z'中的一个,则同样将其解密后的字符设为原字符减去23。如果加密后的字符超过了大写字母范围,则将其转换为小写字母;否则,将其转换为大写字母。最后,输出解密后的字符。