题解:写了10min,de了30min的bug……
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
char k[10000],c[1000];
int temp;
int pd(char x){
if(x>='a'&&x<='z')
return 'a';
if(x>='A'&&x<='Z')
return 'A';
return 1;
}
int main()
{
cin>>k>>c;
for(int i=0,j=0;i<strlen(c);i++,j++)
{
if(j==strlen(k)) j=0;
temp=k[j]-pd(k[j]);
c[i]=c[i]-temp;
if(pd(c[i])!=pd(c[i]+temp)) c[i]+=26;//越界
cout<<c[i];
}
cout<<endl;
return 0;
}