每个字符向后移动x位的循环加密解析

这篇具有很好参考价值的文章主要介绍了每个字符向后移动x位的循环加密解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目要求:

每个字符向后移动x位的循环加密解析,数据结构,数据结构,算法

问题解析:

之前学习数据结构中的循环队列,对循环这个概念的理解就不是很深刻,我记得当时的插入位置是判定是否为满((rear+1)%capacity==front)之后,index = (rear+1)%capacity 这样操作的; %这一下防止数组越界的操作,很巧妙的能把rear指针搬回数组开头!
每个字符向后移动x位的循环加密解析,数据结构,数据结构,算法

这里的rear+1 表示我们放数据的逻辑是在队尾rear有效数据挨着的后面一个位置放,连续的放,上面的字符加密可能一次跳好几个单位!

上面这道题既然要循环,肯定就是类似的溢出%操作的逻辑,但是他是在ascii码对应的字符区间,下标并不是简单地0~capacity-1的数组区间映射了;

一次跳5个单位,并且capacity == 26,那么可以理解为:

i加密 = (s[i]-‘A’+5)%capacity+‘A’;

(上面循环队列为啥没有-'A’和后面的+‘A’是因为他的index偏移反问就是0~capacity-1这个范围,所以不用处理,我们这个字符加密,他的范围有个偏移量,是’A’~‘Z’…,他的开头相当于是’A’这个字符ascii码,我们每次处理先把偏移位置-'A’到0,再%capacity类似于循环队列的简单计算方式处理完index偏移位置之后,最终加回来这个起始偏移量’A’即可)

题目代码:

int main(void)

{
	char t;

	printf("请输入若干字符,以回车结束:");

	t = getchar();

	printf("密文为:");

	while (t != '\n')
	{

		if (t <= 'Z' && t >= 'A')
		{
			t = (t - 'A' + 5) % 26 + 'A';//大写字母循环加密
			putchar(t);
		}

		else if (t <= 'z' && t >= 'a')
		{
			t = (t - 'a' + 5) % 26 + 'a';//小写字母类似
			putchar(t);
		}
		t = getchar();
	}

	return 0;

}

运行结果:

每个字符向后移动x位的循环加密解析,数据结构,数据结构,算法文章来源地址https://www.toymoban.com/news/detail-574195.html

到了这里,关于每个字符向后移动x位的循环加密解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web移动端适配有哪些解决方案?每个方案的优缺点评估

    移动端适配的解决方案主要包括以下几种: rem方案 :这是最早被广泛采用和讨论的移动端适配方案。通过在页面上使用 rem 单位来控制页面元素的大小,实现在不同尺寸的设备上保持界面展示效果的一致性。这种方案的优点在于简单易用,但缺点是对安卓的适配性可能不够好

    2024年02月21日
    浏览(35)
  • PHP反转字符串中的每个单词

    例子 代码 解析 explode: 用空格拆分字符串为一个数组 array_map: 对数组中的每个键值执行回调方法,这里是strrev strrev: 反转字符串,即abc  - cba

    2024年02月07日
    浏览(50)
  • 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之json字符串解析为BsTr结构(一)

    1.对象式json字符串 s := \\\"{\\\"put\\\":{\\\"putjsontest\\\":{\\\"aaa\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"aaab\\\":true,\\\"arrarrstrct\\\":{\\\"nnn\\\":-1234567890,\\\"ccc\\\":[[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"nmbndfvdfgfdg\\\"],[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"poiuiyyttt\\\"]]},\\\"ddd\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"fff\\\":false,\\\"comboolarr\\\":[{\\\"boolarr0\\\":[true,false]},{\\\"boolarr1\\\":[true,false]}]}

    2024年02月21日
    浏览(40)
  • 从零开始学习vivado——day4 跑马灯(让8个LED灯以每个0.5s的速率循环闪烁)

    研一从零开始学习verilog!!!此时不学何时学! 第一次写博客,以此激励自己努力学习! 我跟的视频教程是b站的一个up主,小梅哥爱漂流。 ①编写端口代码: ②计数器 其中,一定是=,如果直接用=,则波形图会出现错误,从00000010到00000100的时间会非常短,导致整个图像看

    2024年02月02日
    浏览(35)
  • Qt将十二位整形十进制转换成十六进制,在转为ascii字符,并下发串口。在接受端完整还原这个十二位的十进制数。

    可以按照以下步骤进行操作: 将十进制数123456789012转换成十六进制字符串: 其中, %1 表示替换第1个参数, 0 表示输出的最小位数为0, 16 表示输出的进制为16, ull 表示无符号长长整型。 2. 将十六进制字符串转换成ASCII字符:

    2024年02月05日
    浏览(31)
  • LeetCode - 1371 每个元音包含偶数次的最长子字符串(Java & JS & Python & C)

    题目来源 1371. 每个元音包含偶数次的最长子字符串 - 力扣(LeetCode) 题目描述 给你一个字符串  s  ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 \\\'a\\\',\\\'e\\\',\\\'i\\\',\\\'o\\\',\\\'u\\\' ,在子字符串中都恰好出现了偶数次。 示例 示例 1 输入:s = \\\"eleetminicoworoep\\\" 输出:

    2024年01月25日
    浏览(34)
  • openJudge | 循环移动 C语言

    总时间限制: 1000ms 内存限制: 65536kB 给定一组整数,要求利用数组把这组数保存起来,再利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m各数变为最前面的m各数。 注意,不要用先输出后m个数,再输出前n-m个数的方法实现

    2024年02月19日
    浏览(22)
  • Kali中搭建vulhub时镜像git失败_vulhub git,每个程序员都必须掌握的8种数据结构

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月27日
    浏览(34)
  • 量子城域网系列(七):移动终端量子加密赋能

           之前的文章中我们讨论了量子密钥如何在网络协议中加密应用,但是在端侧,有大量的无线场景,比如手机、物联网设备等等,这些场景的保密需要也非常旺盛。此外,基于量子密钥分发的城域网络要实现信息传输安全闭环,势必也要将移动终端进行量子加密。本文

    2024年04月23日
    浏览(27)
  • 基于JAVA的RC4加密解密算法循环实现

           RC4算法是一种对称加密算法,所谓对称加密,就是加密和解密的过程是一样的,加密和解密均采用同一把密钥。RC4算法的特点是算法简单,执行速度快安全性比较高并且密钥长度是可变的,可变范围为1-256字节(8-2048比特)。让它如此广泛分布和使用的主要因素是它不可

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包