凯撒密码转化,循环,C语言版!
在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去。有一种加密规则是这样的:
1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a;
2. 对于非字母字符,保持不变。
现在,请你根据输入的一行字符,输出其对应的密码。
输入:I(2016)love(08)China(15)!
输出:L(2016)oryh(08)Fklqd(15)!
注意:字符串长度不超过100。
这个呢就是一个关于循环的题目了
这个题目就是关键在于如何最后三个字符的转化了,但是如果说你是选择了用if语句来对最后三个进行特殊处理的话呢,你就可以关闭这个博客了。恩
下面介绍的是一个循环的方法去实现转化。
就拿大写字母来做个例子吧。
A,B,C,D,E,F,G,H…X,Y,Z.
那么就是最后三个字符的如何回头?
第一步改变
我的话呢,第一步就是想着将其变成一个圆,而不是一个横排,
那么就有了一个26个字母的圆。
第二步就是找规律
A---->D 就是 ‘A’+3
B---->F 就是 ‘A’+(‘B’-‘A’+3)
C---->G 就是 ‘A’+(‘C’-‘A’+3)
.
.
.
X---->A 就是 ‘A’+(‘X’-‘A’+3) 发现这里不行。
就想办法将其转回去,那就就将其变成一个圆,我们可以利用一个取余的情况进行循环。
就变成了下面这种形式:
‘A’+(‘X’-‘A’+3)%26
就可以解决这个一路向前走的问题了。
可能你会觉得有点懵,为啥这个就可以圈圈圈圈圈圈了呢?!
举个例子:
1,2,3,4,5五个数字
那么就有
1%5=1,
2%5=2,
3%5=3,
4%5=4,
5%5=0,
6%5=1,
7%5=2,
看出来了吧,类比一下就行了,有多少个数就对多少取余。
附上完整代码:
#include <stdio.h>
#include <string.h>
int main()
{int i,j,k;char a[100],b[100];gets(a);for(i=0;i<strlen(a);i++){if (a[i]>='A' && a[i]<='Z'){a[i]='A'+(a[i]-'A'+3)%26;}else if (a[i]>='a' && a[i]<='z'){a[i]='a'+(a[i]-'a'+3)%26;}}for (j=0;j<strlen(a);j++){printf("%c",a[j]);}return 0;
}
如果大家有更好的解法,也可以留言,相互学习交流。
凯撒密码转化,循环,C语言版!相关推荐
- 凯撒密码加密解密C语言详细代码
凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...
- 凯撒密码C语言去掉空格字符,凯撒密码的问题C语言
满意答案 xlaijing19 推荐于 2016.04.01 采纳率:43% 等级:12 已帮助:6257人 最低0.27元开通文库会员,查看完整内容> 原发布者:耿万德 凯撒密码是一种非 ...
- 凯撒密码C语言用ASCII码,凯撒密码帮助ASCII循环
我想创建一个凯撒密码,我有输入作为程序中的硬代码.当我运行该程序时,它的工作原理是,但应该是"Y"的所有内容都是"?".我无法弄清楚如何循环ASCII,所以当它 ...
- C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)
1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a-w之间通过加3之后再转化为字符型输出,x-z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...
- 凯撒密码C语言去掉空格字符,凯撒密码C语言实现
<凯撒密码C语言实现>由会员分享,可在线阅读,更多相关<凯撒密码C语言实现(8页珍藏版)>请在人人文库网上搜索. 1.凯撒密码是一种非常古老的加密方法, 相传当年凯撒大地行军打 ...
- 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)
凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...
- 凯撒加密的python语言程序_python实现凯撒密码、凯撒加解密算法
凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字母,在变换加密之前把明文字母都替换为大写字母 def casar(message): # *************begin* ...
- 凯撒密码加密、解密、暴力破解(C语言实现)
C语言设计,替换密码开发设计,2022年9月信息安全课程作业分享 #include<stdio.h> #include<string.h> #include<stdlib ...
- 凯撒密码c语言公式原理,凯撒密码 C语言实现.pdf
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不 被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全.他的原理很简单, 说到底就是字母于字母之间的替换.下面 ...
- Java版 凯撒密码 加密、解密、暴力破解
Java版 凯撒密码 加密.解密.暴力破解 用Java实现凯撒密码的 '加密' 和 '解密' 工作 代码实现如下: 代码片 package com.hellow.demo;import java.ut ...
最新文章
- 这所985大学宣布调查结果:抄袭事实成立!撤销其硕士学位!
- swift_042(Swift的typealias(别名)的用法)
- 【CVPR2020论文解读】300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达...
- CentOS压缩命令zip
- 如何使YouTube视频连续循环播放
- A piecture of J2EE Core Patterns
- 深度学习-吴恩达-笔记-1-深度学习引言
- 北京发布人工智能产业政策,该如何高效关注行业动态、把握新机遇?
- js中数组反向、排序reverse、sort
- 使用socat实现对asok的远程访问
- DEVC中的for编译出错问题解决办法
- JAVA程序设计(学堂在线-清华大学) 课后练习题(更新)
- 学习分析技术【02】--社交网络分析
- 移动电源给路由器供电
- python读取批量txt文件
- python爬取网易云音乐 专辑图片+歌词
- manjaro和android数据线传数据
- 程序员才看得明白的面试圣经
- 分布式事务2PC论文翻译(Concurrency Control and Recovery in Database Systems )
- 嵌入式学习班到底怎么样?