HJ29 字符串加解密
生活随笔
收集整理的這篇文章主要介紹了
HJ29 字符串加解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
1、對輸入的字符串進行加解密,并輸出。
2、加密方法為:
當內容是英文字母時則用該英文字母的后一個字母替換,同時字母變換大小寫,如字母a時則替換為B;字母Z時則替換為a;
當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0;
其他字符不做變化。
3、解密方法為加密的逆過程。
本題含有多組樣例輸入。
輸入描述:
輸入說明
輸入一串要加密的密碼
輸入一串加過密的密碼
輸出描述:
輸出說明
輸出加密后的字符
輸出解密后的字符
思路一:
常規思路,一個個判斷
#include <iostream> #include <string> using namespace std; void EnCode(string str){string restult;for(int i=0;i<str.size();i++){//先處理小寫字母if(str[i]>='a'&&str[i]<='z'){if(str[i]=='z'){restult += 'A';}else {restult += str[i]-32+1; //小數變大并后移一位 }}else if(str[i]>='A'&&str[i]<='Z'){ //再處理大寫字母if(str[i]=='Z'){restult+='a';}else {restult += str[i]+32+1; //大數變小數并前移一位 }}else if(str[i]>='0'&&str[i]<='9'){if(str[i]=='9'){restult+='0';}else {restult += str[i]+1;}}}cout << restult<<endl; }void DeCode(string str){string restult;for(int i=0;i<str.size();i++){//先處理小寫字母if(str[i]>='a'&&str[i]<='z'){if(str[i]=='a'){restult += 'Z';}else {restult += toupper(str[i])-1; //解密先變大后減去1}}else if(str[i]>='A'&&str[i]<='Z'){ //再處理大寫字母if(str[i]=='A'){restult+='z';}else {restult += tolower(str[i]) - 1 ; }}else if(str[i]>='0'&&str[i]<='9'){if(str[i]=='0'){restult+='9';}else {restult += str[i]-1;}}}cout << restult<<endl; }int main(){string str1,str2; //輸入字符串while(cin>>str1>>str2){EnCode(str1);DeCode(str2);}return 0; }總結
以上是生活随笔為你收集整理的HJ29 字符串加解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++常见的排序表与复杂度
- 下一篇: 力扣(leetcode)-1. 两数之和