显示代码纯文本
#include <fstream>
#include <cstring>
#include <algorithm>
#define MAX 1909
using namespace std;
ifstream fin("vigenere.in");
ofstream fout("vigenere.out");
int main()
{
char ans[MAX],pw[MAX],mw[MAX],key[MAX];
//string ans,pw,mw,key;
int pl,ml;
fin>>pw>>mw;
pl=strlen(pw);
ml=strlen(mw);
for(int i=0;i<pl;i++)
{
if(pw[i]>='a')
key[i]=pw[i]-'a';
else
key[i]=pw[i]-'A';
}
for(int i=0;i<ml;i++)
{
ans[i]=mw[i]-key[i%pl];
if((ans[i]<'A')||(ans[i]<'a'&&mw[i]>='a'))
{
ans[i]+=26;
}
fout<<ans[i];
}
return 0;
}