您的位置:首页 > 其它

算法学习之旅,初级篇(11)--凯撒的密码

2017-08-12 16:37 218 查看

介绍

凯撒时代充满了动荡和危险,凯撒为了保证在战争中传递秘密消息,发明了一种密码。他在所有的信件中将所有的字符按字母顺序向后移动了5个位置(比如说,原文中是A,那么密信中就为F),密信中字母和原文中字母的对应关系如下:
密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
原文:VWXYZABVDEFGHIJKLMNOPQRSTU
只有字母被替换,而且所有字母都是大写的。

分析

可通过ASCII码表来计算。

代码

#include<stdio.h>

#include<stdlib.h>

#include<string>

int main()

{
char m_str[200];
int len;
printf("请输入字符串:\n");
scanf("%s",m_str);
len=strlen(m_str);
for(int i=0;i<len;i++)
{
if(m_str[i]>='F'&&m_str[i]<='Z')
m_str[i]=m_str[i]-5;
else if(m_str[i]>='A'&&m_str[i]<='E')
m_str[i]=m_str[i]+21;
else
m_str[i]=m_str[i];
}
printf("正确明文是;%s\n",m_str);
system("pause");
return 0;

}

遇到的问题

问题不大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息