上图大家看着是不是有些晕?
上图的转换其实非常简单
万能公式:
M=C-K+1 ,M<'A' M+=26
C=M+K-1 ,C>'Z' C-=26
接着就是代码了(无视char*+string,开始没有string,后来因为%错了,就改为string存K)
#include<bits/stdc++.h>
using namespace std;
int i;
char s1[2001];
string s2;
int main(){
cin>>s2;
for(i=0;i<s2.size();i++)
if(s2[i]<'a')s2[i]-='A';
else s2[i]-='a';
scanf("%s",&s1);
while(s2.size()<strlen(s1))s2+=s2;
for(i=0;i<strlen(s1);i++)
if(s1[i]<'a'){
s1[i]=s1[i]-s2[i];
if(s1[i]<'A')s1[i]+=26;
}
else{
s1[i]=s1[i]-s2[i];
if(s1[i]<'a')s1[i]+=26;
}
puts(s1);
return 0;
}