在CSDN上看的一篇题解,按照思路来做了
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char k[1010],s[1010];
int len1,len2;
int main()
{
gets(k);
gets(s);
len1=strlen(k);
len2=strlen(s);
for(int i=0;i<len1;i++)
{
if((k[i]>='a')&&(k[i]<='z'))
k[i]-=32;
}
int j=0;
for(int i=0;i<len2;i++)
{
if(s[i]<='Z')
{
s[i]=s[i]-(k[j]-'A');
j++;
if(s[i]<'A')
s[i]='Z'-('A'-s[i])+1;
}
else
{
s[i]=s[i]-(k[j]-'A');
j++;
if(s[i]<'a')
s[i]='z'-('a'-s[i])+1;
}
if(j>len1-1)
j=0;
}
cout<<s;
return 0;
}
在一本通网站上显示编译错误,软件上可以正常运行
尝试过把j放到循环中清零,检查不出问题
在c++中可以正常运行