电文加密

本文介绍了一种军事通讯中用于加密的简单算法,即按照顺时针方向将英文字母转换为其后的第N个字母,使用C++代码展示了如何实现这一过程。
摘要由CSDN通过智能技术生成
题目描述

在军事上,通讯的工具往往是收发电文,但敌方会利用仪器设备接收到电文,所以为了使电文保密,可以按一定的规律将电文转换成密码再发送,收报人再按约定的规律将其译回原文,现按这样的规律加密英文电文:将26个英文字母按顺时针围成一圈,把要发送的英文字母转变成其后的第N(1≤N≤25)个字母(除英文字母外,电文中的其它字符不用加密)。例如:如图1,把大写字母A转变成其后的第3个字母是D,把大写字母Y转变成其后的第3个字母是B,小写字母的加密方法也一样,如把b转变成其后的第3个字母是e,把y转变成其后的第三个字母是b。例如电文"1Day."按把字母转变成其后的第3个字母的方法进行加密是:"1Gdb."。

 

输入格式

输入数据仅1行:A$,N (A$为英文字串,N为转换为其后的第N个字母,1≤N≤25,英文字串与N之间用‘,’隔开)。

输出格式

输出数据仅1行,把英文字串A$转换为其后的第N个字母的新字串。

 

输入/输出例子1

输入:

Tow.,4

输出:

Xsa.

样例解释

4表示把"Tow."转变成其后的第4个字母

代码

#include<bits/stdc++.h>
using namespace std;
string a;
long long s,s1;
int main() {
	getline(cin,a,',');
	cin>>s;
	int n=a.size();
	for (int i=0;i<n;i++)
	{
		if (a[i]>='a'&&a[i]<='z')
		{
			if (a[i]+s<='z')
				a[i]+=s;
			else 
				a[i]=a[i]+s-26;
		}
		if (a[i]>='A'&&a[i]<='Z')
		{
			if (a[i]+s<='Z')
				a[i]+=s;
			else
				a[i]=a[i]+s-26;
		}
		cout<<a[i];
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值