死磕z+1变a咋变,看评论发现单个处理就行。
#include <iostream> #include <string> using namespace std; int main() { string d1 = "22233344455566677778889999"; string d2 = "abcdefghijklmnopqrstuvwxyz"; string code; getline(cin, code); for(int i = 0; i < code.length(); i++){ if(code[i] >= 'A' && code[i] < 'Z'){ code[i] = code[i] - 'A' + 'a' + 1; continue; } if(code[i] == 'Z'){ code[i] = 'a'; continue; } for(int j = 0; j < d2.length(); j++){ if(code[i] == d2[j]){ code[i] = d1[j]; } } } cout << code << endl; return 0; } // 64 位输出请用 printf("%lld")