题解 | #字符串加解密#
字符串加解密
http://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
#include <bits/stdc++.h>
using namespace std;
//encoder
void encoder(string str){
for(int i = 0; i < str.size(); i++){
if(isalpha(str[i])){
if(str[i] >= 'a' && str[i] <= 'z'){//小写字母
if(str[i] == 'z') str[i] = 'A';
else{
str[i] = str[i] - 'a' + 'A' + 1;//变换大小写同时用后一个字母替换
}
}
else{
if(str[i] == 'Z') str[i] = 'a';
else{
str[i] = str[i] - 'A' + 'a' + 1;//变换大小写同时用后一个字母替换
}
}
}
else if(isdigit(str[i])){
if(str[i] == '9') str[i] = '0';
else{
str[i] = str[i] + 1;
}
}
}
cout << str << endl;
}
//decoder
void decoder(string str){
for(int i = 0; i < str.size(); i++){
if(isalpha(str[i])){
if(str[i] >= 'a' && str[i] <= 'z'){//小写字母
if(str[i] == 'a') str[i] = 'Z';
else{
str[i] = str[i] - 'a' + 'A' - 1;//变换大小写同时用后一个字母替换
}
}
else{
if(str[i] == 'A') str[i] = 'z';
else{
str[i] = str[i] - 'A' + 'a' - 1;//变换大小写同时用后一个字母替换
}
}
}
else if(isdigit(str[i])){
if(str[i] == '0') str[i] = '9';
else{
str[i] = str[i] - 1;
}
}
}
cout << str << endl;
}
int main(){
string yao_jia_mi_str = "";
cin >> yao_jia_mi_str;
string jia_guo_mi_str = "";
cin >> jia_guo_mi_str;
encoder(yao_jia_mi_str);
decoder(jia_guo_mi_str);
return 0;
}
华为题库题解 文章被收录于专栏
牛客华为题库的题解