题目描述

Julius Caesar曾经使用过一种很简单的密码。 对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。 比如字符A用F来代替。如下是密文和明文中字符的对应关系。 密文 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 明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。

输入描述:

输入中的测试数据不超过100组。每组数据都有如下的形式,而且各组测试数据之间没有空白的行。
一组测试数据包括三部分:
1.    起始行 - 一行,包括字符串 "START"
2.    密文 - 一行,给出密文,密文不为空,而且其中的字符数不超过200
3.    结束行 - 一行,包括字符串 "END"
在最后一组测试数据之后有一行,包括字符串 "ENDOFINPUT"。

输出描述:

对每组数据,都有一行输出,给出密文对应的明文。

输入

START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT

输出

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

C++实现:

#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int main(){string s;string e;while(cin>>s){if(s=="ENDOFINPUT")break;//需使用getchar()来接收换行符getchar();char c[200];gets(c);int num=strlen(c);for(int i=0;i<num;i++){if(c[i]>='A'&&c[i]<='Z'){cout<<(char)((c[i]-'A'-5+26)%26+'A');}elsecout<<c[i];}cout<<endl;cin>>e;getchar();}
}

简单密码(Caesar密码)--C++实现相关推荐

  1. 古典密码算法 凯撒(Caesar)密码,又叫循环移位密码

    古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密 ...

  2. Caesar密码的生成与破解

    背景 在密码学中,恺撒密码(英语:Caesarcipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按 ...

  3. HDU密码学-Caesar密码(Java实现)

    一.实验名称: Caesar密码实验 二.实验要求: 1.了解古典密码的几种分类. 2.掌握Caesar密码的加减密原理. 3.运用IntelliJ IDEA实现Caesar密码程序. 三.实验内容: ...

  4. caesar解密_C和C ++中的Caesar密码[加密和解密]

    caesar解密 Get program for caesar cipher in C and C++ for encryption and decryption. 获取用于C和C ++的凯撒密码的程 ...

  5. c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)

    置换密码 代码如下: #置换密码 a = input('请输入明文:') print("逆序后的密文为:",a[::-1]) 结果如图: 代码如下: #栅栏技术(栏数为7) a = ...

  6. 凯撒密码(Caesar)

    凯撒密码(Caesar) 加密对象: 大小写字母 原理: 是一种移位加密方法,给每个字母排个索引,字母a-z索引依次为0-25 偏移量是多少就向后面移动多少 如:密文"Abc",偏 ...

  7. 单表代换密码之Caesar密码的代码实现

    单表代换密码之Caesar密码的代码实现 代码块 代码块语法遵循标准markdown代码,例如: from operator import mod #ceasar加密算法 def ceasarC(a) ...

  8. 简单得压缩包密码解密

    简单得压缩包密码解密 事情起因是学长发了一个题,说是给我们练练手,学学新东西 做出来之后简单得写个wp,来巩固一下吧! 打开题之后发现是三个有密码得文件,这里就涉及到了一个简单得小知识 zip伪加密 ...

  9. Android 简单的账号密码登陆界面(IO流)

    Android 简单的账号密码登陆界面(IO流) 用到了map<String,String> .IO流等. MainActivity代码如下: package com.xh.tx.file ...

  10. sqlyog最简单的修改密码方法。

    sqlyog最简单的修改密码方法. 快捷键:CTRL+U 重新设置下就好了. 实在不行艾特我,看到一定给你回复哈

最新文章

  1. python中如何对复杂的json数据快速查找key对应的value值(使用JsonSearch包)
  2. 代理错误[WinError 10061]
  3. C# 数值和字符串之间的相互转换
  4. Codeforces 1139F Dish Shopping 树状数组套平衡树 || 平衡树
  5. Web在线操作Office之Word
  6. node中操作MySQL
  7. 信息学奥赛一本通(1113:不与最大数相同的数字之和)
  8. maven创建java项目_使用maven命令行创建java项目
  9. js变量显示在html中_PythonDjango+JS+Ajax实现网页采集并动态显示PLC变量
  10. oracle集群启动状态,oracle 11g集群软件无法启动解决步骤
  11. get方法和post方法的区别和联系
  12. 【数据可视化作业】五个优秀可视化案例整理+Kaggle数据集useTableau实践
  13. 请停止无效努力,让你的付出都能有所收获
  14. 外部多端口映射Https443端口配置
  15. vmalloc 虚拟实现
  16. 从 电影《飞驰人生》中想到
  17. linux ubantu snmp服务,ubuntu 20.04 snmp安装配置
  18. Flutter | 和小老弟一起学资源管理
  19. 在 Mac系统中,怎么能够连续的看图片
  20. 四川子苗电商:抖音直播安心购怎么解约?

热门文章

  1. Laravel防范xss攻击
  2. 超级码力在线编程大赛初赛 第2场 1.三角魔法
  3. Alpha阶段敏捷冲刺⑧
  4. 敏捷开发实践经验分享
  5. 思科vrrp实例_Cisco 交换机 vrrp+mstp 配置实例
  6. 精英班10名学生名单进行排序输出
  7. Linux gdb调试(4):多进程与多线程调试
  8. 利用单片机最小系统外接DS12C887 在LCD1602上显示实时时钟
  9. 为什么会出现慢SQL
  10. 机器人视觉系统的构成