贴上我的代码:
请大佬指点一下
#include<bits/stdc++.h>
using namespace std;
const int MAX=1e3+1;
const int MAx=26*26+2;
char MM[MAx]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
string k,m;
bool g[MAX]={0};
string ToBig(string a){
for(int i=0;i<a.size();i++){
if('a'<=a[i]&&a[i]<='z'){
a[i]-='a';
g[i]=true;
}
}
return a;
}
string ToBack(string a,bool f[]){
for(int i=0;i<a.size();i++){
if(g[i]){
a[i]+='a';
}
}
return a;
}
string z_Long(int l,string ke){
string sum="";
int t=0;
for(int i=0;i<l;i++){
sum+=ke[t];
if(t==ke.size()){
t=0;
}else{
t++;
}
}
return sum;
}
string J(char a,char b){
int ch=(a-'a')-(b-'a');
return to_string(MM[ch]);
}
string m_Txt(string Key,string C){
Key=z_Long(C.size(),Key);
string ans="";
for(int i=0;i<C.size();i++){
ans+=J(C[i],Key[i]);
}
return ToBack(ans,g);
}
int main(){
cin>>k>>m;
k=ToBig(k);
m=ToBig(m);
string M=m_Txt(k,m);
cout<<M<<'\n';
return 0;
}