死磕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")