应用 ROT13 到一段文字上仅仅只需要检查字母顺序并取代它在 13 位之后的对应字母,有需要超过时则重新绕回 26 英文字母开头即可。A 换成 N、B 换成 O、依此类推到 M 换成 Z,然后串行反转:N 换成 A、O 换成 B、最后 Z 换成 M (如图所示)。只有这些出现在英文字母里的字符受影响;数字、符号、空白字符以及所有其他字符都不变。替换后的字母大小写保持不变。

Input

第 1 行:一个整数 T (1≤T≤10) 为问题数。

接下来共 T 行。每行为长度不超过 1000 个字符的一段文字。内含大小写字母、空格、数字和各种符号等。
Output

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等)。

然后对应每个问题在一行中输出经过 ROT13 加密后的一段文字。


定义一个const数组,便于直接+13回转,省去判断是否需要绕回

const string rot="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";

核心部分

         string a;
getline(cin,a);
for(int i=;i<a.size();i++)
if(isalpha(a[i]))
a[i]=a[i]>='a'?tolower(rot[a[i]-'a'+]):rot[a[i]-'A'+];
6 printf("case #%d:\n",m);
cout << a << endl;

注意原输入的大小写不可改变。

最新文章

  1. 将应用部署到Tomcat根目录的方法 去掉url里的项目名
  2. ASP.net MVC中页面跳转
  3. 加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: Section 5 Window to a Wider World
  4. MemSQL分布式架构介绍(二)
  5. Android 自带图标库 android.R.drawable
  6. 使用JProfiler进行内存分析
  7. ES2015 (ES6)
  8. [HeadFist-HTMLCSS学习笔记][第七章CSS入门:加一点样式]
  9. 【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
  10. 回温js算法
  11. [笔记]猿计划(WEB安全工程师养成之路系列教程):03HTML基础标签
  12. sparse 稀疏函数的用法2
  13. Chess (SG + 状态压缩预处理)
  14. 从MySQL和MongoDB的对比,看SQL与NoSQL的较量
  15. android adb push 命令
  16. Excel表数据导入Sql Server数据库中
  17. 20155213 2016-2017-2 《Java程序设计》第九周学习总结
  18. [Linux] Systemd 入门教程:命令篇
  19. 【DEV C++】 Error: ld returned 1 exit status
  20. IOS开发如何入门

热门文章

  1. MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误
  2. [hihocoder][Offer收割]编程练习赛43
  3. 洛谷P2181 对角线(组合数)
  4. android系统源码下载
  5. jquery mobile datepicker
  6. 【Oracle】SCOPE=MEMORY|SPFILE|BOTH
  7. DP:***24种设计模式--转自刘伟
  8. 资源帖:CV代码库搜集
  9. UVa修改版02
  10. C# indexof 注意