#include <iostream> using namespace std; //字符串处理,遍历字符串中的字符依次判断即可 int main() { string pwd;//原密码 string npwd;//记录变化后的密码 getline(cin,pwd); for(char it : pwd) { //如果是数字,保持不变 if(isdigit(it)) npwd+=it; //大写字母按照规则转换成小写 if(isupper(it)) { char low=tolower(it); //单独处理Z的情况 if(low=='z') low='a'; else low+=1; npwd+=low; } //小写字母,转换成数字 if(islower(it)) { //利用acsll码直接比较 if(it>='a'&& it<='c') npwd+='2'; if(it>='d'&& it<='f') npwd+='3'; if(it>='g'&& it<='i') npwd+='4'; if(it>='j'&& it<='l') npwd+='5'; if(it>='m'&& it<='o') npwd+='6'; if(it>='p'&& it<='s') npwd+='7'; if(it>='t'&& it<='v') npwd+='8'; if(it>='w'&& it<='z') npwd+='9'; } } cout<<npwd; } // 64 位输出请用 printf("%lld")