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

来源:互联网 发布:2017中超球员数据 编辑:程序博客网 时间:2024/06/05 05:11

介绍

凯撒时代充满了动荡和危险,凯撒为了保证在战争中传递秘密消息,发明了一种密码。他在所有的信件中将所有的字符按字母顺序向后移动了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;
}

遇到的问题

问题不大