#include<iostream>
#include <vector>
#include "bits/stdc++.h"
using namespace std;
char jiami(char s){
if(s >= 'a'&&s < 'z'){return char(s-31);}
else if(s == 'z') return 'A';
else if(s >= 'A'&&s < 'Z') return char(s+33);
else if(s == 'Z') return 'a';
else if(s >= '0'&&s < '9'){ return char(s+1);}
else if(s == '9') return '0';
return ' '; //需要加默认返回值,否则编译器会报错
}
char jiemi(char s){
if(s > 'A'&&s <= 'Z'){return char(s+31);}
else if(s == 'A') return 'z';
else if(s > 'a'&&s <= 'z')return char(s-33);
else if(s == 'a') return 'Z';
else if(s > '0'&&s <= '9'){ return char(s-1);}
else if(s == '0') return '9';
return ' ';
}
int main()
{
// unordered_map<char,char>mpchar;
// for(char c='a';c <= 'z';c++){
// if(c != 'z'){mpchar[c] = char(c-31);}
// else mpchar[c] = 'A';
// }
// for(char c='0';c <= '9';c++){
// if(c!='9'){mpchar[c] = char(c+1);}
// else mpchar[c] = '0';
// }
//
// for(auto it = mpchar.begin();it != mpchar.end();it++){
// cout << it->first << " " << it->second << endl;
// }
string s1,s2;
while(cin >> s1 >> s2){
string res = "";
for(int i=0;i < s1.size();i++){
res += jiami(s1[i]);
}
cout << res << endl;
res = "";
for(int i=0;i < s2.size();i++){
res += jiemi(s2[i]);
}
cout << res << endl;
}
return 0;
}
题目描述
1、对输入的字符串进行加解密,并输出。
2、加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。
本题含有多组样例输入。
输入描述:
输入说明
输入一串要加密的密码
输入一串加过密的密码
输出描述:
输出说明
输出加密后的字符
输出解密后的字符