HJ29 字符串加解密

news/2024/11/7 20:38:50/

描述

对输入的字符串进行加解密,并输出。 

加密方法为: 

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; 

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0; 

其他字符不做变化。 

解密方法为加密的逆过程。 

数据范围:输入的两个字符串长度满足 1≤n≤1000 1≤n≤1000  ,保证输入的字符串都是只由大小写字母或者数字组成

输入描述:

第一行输入一串要加密的密码
第二行输入一串加过密的密码

输出描述:

第一行输出加密后的字符
第二行输出解密后的字符

示例1

输入:
abcdefg
BCDEFGH输出:     
BCDEFGH
abcdefg
#include <ios>
#include <iostream>
using namespace std;
//string digLetter[26]={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};
//string smallLetter[26]={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};
//int num[10]={0,1,2,3,4,5,6,7,8,9};
string encrypted_code(string code){string password="";for(int i=0;i<code.size();i++){//英文字母用该英文后一个字母替换//字母变换大小写,大写变成小写,小写变成大些//ascii大写在前,小写在后,差32,加一等于33if(code[i]>='a'&&code[i]<='z'){if(code[i]=='z'){//a且变成大写password[i]=code[i]-25-32;}else{//其他的都是往后一位,变换大小写password[i]=code[i]-32+1;}}else if(code[i]>='A'&&code[i]<='Z'){if(code[i]=='Z'){password[i]=code[i]+32-25;}elsepassword[i]=code[i]+32+1;}else if(code[i]>=0&&code[i]<=9){if(code[i]==0){password[i]=9;}else{password[i]=code[i]-1;}}//内容为数字,数字加1,其他字符不做变换}return password;
}
string decode( string code){string passwordPre="";for(int i=0;i<code.size();i++){
//内容为数字,减1if(code[i]>=0&&code[i]<=9){if(code[i]==0){passwordPre[i]=9;}else{passwordPre[i]=code[i]-1;}}else if(code[i]>='a'&&code[i]<='z'){if(code[i]=='a'){passwordPre[i]='Z';}else{passwordPre[i]=code[i]-32-1;}}else if(code[i]>='A'&&code[i]<='Z'){if(code[i]=='A'){passwordPre[i]='z';}else{passwordPre[i]=code[i]+32+1;}}//内容为字母,大写变成小写,小写变成大写,字母往前一位,a==Z,B=a}return passwordPre;
}int main() {string encryptedCode;string deCode;while(cin>>encryptedCode>>deCode){cout<<encrypted_code(encryptedCode)<<endl;cout<<decode(deCode)<<endl;}
}
// 64 位输出请用 printf("%lld")

关于ascii码 的进制转换。按照下面的表格进行相应的加减操作:

#include <iostream>using namespace std;int main()
{char a[20];int i = 0;cout<<"请输入一串字符:\n";cin>>a;for(;a[i];i++){if(a[i] >= 'a'&&a[i] <= 'z')a[i] -= 32;else if(a[i] >= 'A'&&a[i] <= 'Z')a[i] += 32;}for(i = 0;a[i];i++)cout<<a[i];cout<<endl;system("pause");return 0;
}


http://www.ppmy.cn/news/211164.html

相关文章

Node.js: express + MySQL + Vue实现图片上传

前段时间用Node.js: express MySQL Vue element组件做了一个小项目&#xff0c;记录一下图片上传的实现。 将图片存入数据库有两种方法&#xff1a; 1&#xff0c;将图片以二进制流的方式存入数据库&#xff08;数据库搬家容易&#xff0c;比较安全&#xff0c;但数据库空间…

android wear 配对找不到手表,如何将多个Android Wear手表与单个手机配对 | MOS86

当谈到普通手表时&#xff0c;许多人会为不同的活动使用不同的手表。 它可以为体育馆提供运动型手表&#xff0c;为办公室提供更好的手表&#xff0c;并为其他一切提供休闲手表。 如果您想通过Android Wear来度过这一生&#xff0c;那么轻松将多块手表连接到主手机上就很容易了…

安卓手表wear开发获取心率

本人在项目开发过程中遇到需要开发一款手表应用&#xff0c;并且需要获取心率等生命体征信息。此处以获取心率举例记录 首先获取权限 <uses-permission android:name"android.permission.BODY_SENSORS" /> 其实只是实现读取心率是比较容易的&#xff0c;接…

从安装包中提取wear OS手表端应用

连接wearOS的安卓手机&#xff0c;一般会把安装包推送到手表&#xff0c;但有时候手表并不会接受推送&#xff08;如小米手表&#xff09;&#xff0c;这时候就需要我们自己去从手机安装包中提取手表安装包了 准备材料 下载软件mt管理器&#xff08;可自行寻找或直接下载本文附…

三星s2刷android wear,好过安卓手表?三星 Gear S2 上手体验

三星已经连续推出多款智能手表&#xff0c;现在终于拿出了一款像样的智能手表。由于配备了最新的 TLC 闪存&#xff0c;这是目前为止三星最好的一款智能手表。 可能从苹果手表的数码皇冠中获得了灵感&#xff0c;Gear S2能让你不仅可以通过触摸屏&#xff0c;也能通过旋转表圈来…

android wear ios 连接,教你如何让Android Wear智能手表兼容iOS系统

也许未来Android Wear系统智能手表有可能官方兼容iOS系统&#xff0c;但是想要等到这一天&#xff0c;似乎还得有点耐心。因此如果你恰好是一位iPhone用户&#xff0c;同时又不太喜欢Apple Watch&#xff0c;购买了一款Android Wear系统智能手表&#xff0c;那么现在已经有方法…

wear os 自制安卓智能手表音乐播放器

界面展示 设计 使用google MediaSession框架&#xff0c;完全兼容安卓设备 播放整体流程 应用架构 功能 播放/暂停上一曲/下一曲音乐列表音量调节进度条展示播放信息展示后台唤醒扫描本地音乐耳机控制播放其他声音自动暂停断开蓝牙自动暂停 代码地址 github GitHub - isxcwen…

父亲节棒球亲子活动·棒球1号位

父亲节棒球亲子活动的策划方案&#xff1a; 一、活动主题&#xff1a;父亲节棒球亲子活动 二、活动目的&#xff1a;通过棒球比赛的形式&#xff0c;增强父子之间的感情&#xff0c;加强家庭亲子关系&#xff0c;同时提高参与者的身体素质和团队协作意识。 三、活动时间和地点…