解题思路:
(1)依次判断
#include<iostream>
#include<string>
using namespace std;
string encode(string &s) {
string str;
for(int i=0;i<s.length();i++) {
if(islower(s[i])) {
char temp=(char)(s[i]+1);
if(temp>'z') str+='A';
else str+=toupper(temp);
} else if(isupper(s[i])) {
char temp=(char)(s[i]+1);
if(temp>'Z') str+='a';
else str+=tolower(temp);
} else if(isdigit(s[i])) {
if(s[i]=='9') str+='0';
else str+=(char)(s[i]+1);
} else str+=s[i];
}
return str;
}
string decode(string &s) {
string str;
for(int i=0;i<s.length();i++) {
if(islower(s[i])) {
s[i]=toupper(s[i]);
char temp=(char)(s[i]-1);
if(temp<'A') str+='Z';
else str+=temp;
} else if(isupper(s[i])) {
s[i]=tolower(s[i]);
char temp=(char)(s[i]-1);
if(temp<'a') str+='z';
else str+=temp;
} else if(isdigit(s[i])) {
if(s[i]=='0') str+='9';
else str+=(char)(s[i]-1);
} else str+=s[i];
}
return str;
}
int main() {
string s1="",s2="";
while(cin>>s1) {
cin>>s2;
cout<<encode(s1)<<endl;
cout<<decode(s2)<<endl;
}
return 0;
}