在字符串转换数字那块纠结了半天,最后发现s[i]可以直接运算,为啥呢??
#include <bits/stdc++.h>
using namespace std;
//思路一:暴力遍历;思路二:map;思路三:vector<char>替换

string enc(string s){
    for(int i=0;i<s.size();i++){
        if(s[i]=='Z')
            s[i]='a';
        else if(s[i]=='z')
            s[i]='A';
        else if(s[i]>='a'&&s[i]<'z')
            s[i]=(char)(s[i]-'a'+'A'+1);
        else if(s[i]>='A'&&s[i]<'Z')
            s[i]=(char)(s[i]-'A'+'a'+1);
        else if(s[i]=='9')
            s[i]='0';
        else
            s[i]+=1;//为什么字符串可以直接运算?
    }
    return s;
}
string dec(string s){
    for(int i=0;i<s.size();i++){
        if(s[i]=='a')
            s[i]='Z';
        else if(s[i]=='A')
            s[i]='z';
        else if(s[i]>'a'&&s[i]<='z')
            s[i]=(char)(s[i]-'a'+'A'-1);
        else if(s[i]>'A'&&s[i]<='Z')
            s[i]=(char)(s[i]-'A'+'a'-1);
        else if(s[i]=='0')
            s[i]='9';
        else
            s[i]-=1;
    }
    return s;
}

int main() {
    string s1,s2;
    cin>>s1>>s2;
    cout<<enc(s1)<<endl;
    cout<<dec(s2)<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")