Vigenère 密码————模拟+字符串

mac2024-11-06  15

题解:简单的字符串模拟题。 代码如下:

#include<cstdio> #include<cstring> #include<iostream> using namespace std; char k[1010],s[1010],ans[1010]; int len1,len2; int main() { gets(k);gets(s); len1=strlen(k); len2=strlen(s); if(len1<len2) for(int i=len1;i<len2;i++) k[i]=k[i-len1]; for(int i=0,j;i<len2;i++) { if(k[i]>='A'&&k[i]<='Z')j=k[i]-'A'; if(k[i]>='a'&&k[i]<='z')j=k[i]-'a'; ans[i]=s[i]-j; if(s[i]>='A'&&s[i]<='Z') if(ans[i]<'A')ans[i]+=26; if(s[i]>='a'&&s[i]<='z') if(ans[i]<'a')ans[i]+=26; } for(int i=0;i<len2;i++) cout<<ans[i]; return 0; }
最新回复(0)