T1112 加密的病历单
题目描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个 “原文 -> 密文” 的例子)
原文中所有的字符都在字母表中被循环右移了三个位置( abz -> dec )
逆序存储(abcd -> dcba )
大小写反转(abXY -> ABxy)
输入格式
原文。(长度小于 5050 且只包含大小写字母)
输出格式
输出加密后的字符串。
样例输入
GSOOWFASOq
样例输出
Trvdizrrvj
代码
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
getline(cin,s);
int len = s.length();
for(int i=0; i<len; i++){
//循环右移三个位置
if((s[i]>='x' && s[i]<='z') || (s[i]>='X' && s[i]<='Z'))
s[i]=s[i]-23;
else
s[i] = s[i]+3;
//大小写转换
if(s[i]>='a' && s[i]<='z')
s[i] = s[i]-32;
else if(s[i]>='A' && s[i]<='Z')
s[i] = s[i] +32;
}
//逆序输出
for(int i=len-1; i>=0; i--)
cout << s[i];
return 0;
}