加密的病历单(字符串)

描述

小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。     

在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。    经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)  

1.原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
2.逆序存储(abcd -> dcba )
3.大小写反转(abXY -> ABxy)

格式

输入格式

一个加密的字符串。(长度小于50且只包含大小写字母)

输出格式

输出解密后的字符串。

样例

输入样例

GSOOWFASOq

输出样例

扫描二维码关注公众号,回复: 10206240 查看本文章
Trvdizrrvj

限制

时间限制: 1000 ms

内存限制: 65536 KB

注意点1:xyz的逆序

注意点2:cin的输入

#include <iostream>
#include <math.h>
using namespace std;

int main ()
{
	string tmp;
	char ans;
	getline(cin, tmp);             //注意输入
	int leng = tmp.length();
	for (int i=0; i<leng; i++) {
		if (tmp[i] >= 'A' && tmp[i] <= 'Z') {
			ans = tmp[i] + 3;
			if (ans > 90)	//注意XYZ的逆序
				ans -= 26;
			ans += 32;
			tmp[i] = ans;
		} else if (tmp[i] >= 'a' && tmp[i] <= 'z') {
			ans = tmp[i] + 3;
			if (ans > 122)	    //注意xyz的逆序
				ans -= 26;
			ans -= 32;
			tmp[i] = ans;
		}
	}
	for (int i=leng-1; i>=0; i--) {
		printf ("%c", tmp[i]);
	}
	printf ("\n");
	return 0;
}
发布了89 篇原创文章 · 获赞 77 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/wodemaoheise/article/details/104634201