解决方法:
1)大写字母,转成小写+32,再后移一位,再加1,+1;
2)小写字母判断
3)其他直接输出即可
#include<bits/stdc++.h>
using namespace std;
string desecret(string str){
int n=str.size();
string res;
for(int i=0;i<n;i++){
if((str[i]>='A')&&(str[i]<='Z')){
char tmp;
if(str[i]=='Z') tmp='a';
else tmp=str[i]+32+1;
res.push_back(tmp);
}else if((str[i]>='a')&&(str[i]<='z')){
int n = str[i]-'a';
char tmp;
if(n<=2) tmp='2';
else if(n<=5) tmp ='3';
else if(n<=8) tmp='4';
else if(n<=11) tmp='5';
else if(n<=14) tmp='6';
else if(n<=18) tmp='7';
else if(n<=21) tmp='8';
else if(n<=25) tmp='9';
res.push_back(tmp);
}else{
res.push_back(str[i]);
}
}
return res;
}
int main(){
string str;
while(getline(cin,str)){
cout<<desecret(str)<<endl;
}
}