C++信息学奥赛1137:加密的病历单

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main() {
	string arr;
	// 输入一行字符串
	getline(cin, arr);
	string btt;
	for(int i=arr.length()-1;i>=0;i--){
		char a=arr[i]+3; // 对当前字符进行加密,向后移动三位
		if(arr[i]>=88 and arr[i]<=90) { // 如果当前字符是'X'、'Y'、'Z'中的一个
			a=arr[i]-23; // 解密时向前移动23位
		}else if(arr[i]>=120 and arr[i]<=122){ // 如果当前字符是'x'、'y'、'z'中的一个
			a=arr[i]-23; // 解密时向前移动23位
		}
		if(a>90){ // 如果加密后的字符超过了大写字母范围
			a-=32; // 将其转换为小写字母
			cout<<a; // 输出解密后的字符
		}else{
			a+=32; // 将加密后的字符转换为大写字母
			cout<<a; // 输出解密后的字符
		}
	}
	return 0;
}

该段代码实现了一个简单的字符加密和解密功能。首先,通过getline(cin, arr)语句从标准输入读取一行字符串。然后,从字符串的最后一个字符开始,向前遍历。对于每个字符,使用char a=arr[i]+3将其往后移动三位。如果字符是大写字母'X'、'Y'、'Z'中的一个,则将其解密后的字符设为原字符减去23;如果字符是小写字母'x'、'y'、'z'中的一个,则同样将其解密后的字符设为原字符减去23。如果加密后的字符超过了大写字母范围,则将其转换为小写字母;否则,将其转换为大写字母。最后,输出解密后的字符。

相关推荐
LJianK1几秒前
select .. group by
java·数据库·sql
安全二次方security²几秒前
CUDA C++编程指南(7.1)——C++语言扩展之函数执行空间指定符
c++·人工智能·nvidia·cuda·cuda编程·global·函数执行空间指定符
Q741_1475 分钟前
C++ 优先级队列 大小堆 模拟 力扣 1046. 最后一块石头的重量 每日一题
开发语言·c++·算法·leetcode·优先级队列·
猿小羽7 分钟前
[TEST] Spring Boot 快速入门指南 - 1769246843980
java·spring boot·后端
一个处女座的程序猿O(∩_∩)O8 分钟前
Next.js 与 React 深度解析:为什么选择 Next.js?
开发语言·javascript·react.js
KiefaC11 分钟前
【C++】特殊类设计
开发语言·c++
阿蒙Amon12 分钟前
C#每日面试题-简述this和base的作用
java·面试·c#
坐怀不乱杯魂13 分钟前
Linux - 进程信号
linux·c++
毕设源码-朱学姐14 分钟前
【开题答辩全过程】以 基于SSM的航班管理系统的设计与实现为例,包含答辩的问题和答案
java
June bug15 分钟前
【python基础】常见的数据结构的遍历
开发语言·数据结构·python