P1079 Vigenère 密码 (简单模拟&字符串)

P1079 Vigenère 密码 (简单模拟&字符串)

题目传送门

题意:给出密钥和密文求明文。

思路:分两种情况:每种情况又分大小写两种情况即可。大小写可以用toupper( ),tolower( )实现。ps:看起来花里胡哨的。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	string a,b,c;
	cin>>b>>c;
	int lb=b.size(),lc=c.size();
	for(int i=0;i<lc;i++){
		if(toupper(c[i])>=toupper(b[i%lb])){
			if(c[i]>='A')
			printf("%c",'A'+(c[i]-toupper(b[i%lb])));
			else printf("%c",'a'+(c[i]-tolower(b[i%lb])));
		}
		else {
			if(c[i]>='A')
			printf("%c",c[i]+('Z'-toupper(b[i%lb])+1));
			else printf("%c",c[i]+('z'-tolower(b[i%lb])+1));
		}
	}
	return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 16:15
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务