c++实现凯撒加密(密文全大写)

凯撒加密的定义相信大家已经熟悉了

我就在这里分享一下一种新的方法

思路是这样的:

1.先创建一个数组用来记录字母表,然后如果小写字母就先将小写转换为大写字母

2.再用一个公式将index算出

3.最后再将传递的字符加密返回(如果不是字母将原路返回)

源码:

//凯撒加密
char KSencryption(char temp, int key) {
	char alphabet[26] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
	if (temp >= 'a' && temp <= 'z')
	{
		//大写的字母比小写的字母小32个(ASCII字符)
		temp -= 32;
	}
	//要置换的位置
	int index;
	if (temp >= 'A' && temp <= 'Z')
	{
		//A对应0,ASCII为65,那么总体该减去65,用来判断下标
		//加入为Z,那么对应的25,假定加上密钥之后为3,那么加密后应为C
		index = (key + (temp - 65)) % 25;
		//C的下标为2
		temp = alphabet[index];
	}
	return temp;
}

(如果不足请谅解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值