華為OJ:字串加解密
阿新 • • 發佈:2019-01-23
題目描述
1、對輸入的字串進行加解密,並輸出。
2加密方法為:
當內容是英文字母時則用該英文字母的後一個字母替換,同時字母變換大小寫,如字母a時則替換為B;字母Z時則替換為a;
當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0;
其他字元不做變化。
3、解密方法為加密的逆過程。
介面描述:
實現介面,每個介面實現1個基本操作:
void Encrypt (char aucPassword[], char aucResult[]):在該函式中實現字串加密並輸出
說明:
1、字串以\0結尾。
2、字串最長100個字元。
int unEncrypt (char result[], char password[]):在該函式中實現字串解密並輸出
說明:
1、字串以\0結尾。
2、字串最長100個字元。
// 最後一個單詞的長度.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <string> #define N 100 using namespace std; void Encrypt(char aucPassword[], char aucResult[]) { int i = 0; while (aucPassword[i] != '\0') { if (aucPassword[i] >= 'a' && aucPassword[i] <= 'z') { aucResult[i] = (aucPassword[i] - 'a' + 1) % 26 + 'A'; } else if(aucPassword[i] >= 'A' && aucPassword[i] <= 'Z') { aucResult[i] = (aucPassword[i] - 'A' + 1) % 26 + 'a'; } else if (aucPassword[i] >= '0' && aucPassword[i] <= '9') { aucResult[i] = (aucPassword[i] - '0' + 1) % 10 + '0'; } i++; } aucResult[i] = '\0'; cout << aucResult << '\n'; } int unEncrypt(char result[], char password[]) { int i = 0; while (result[i] != '\0') { if (result[i] >= 'a' && result[i] <= 'z') { password[i] = (result[i] - 'a' + 25) % 26 + 'A'; } else if (result[i] >= 'A' && result[i] <= 'Z') { password[i] = (result[i] - 'A' + 25) % 26 + 'a'; } else if (result[i] >= '0' && result[i] <= '9') { password[i] = (result[i] - '0' + 9) % 10 + '0'; } i++; } password[i] = '\0'; cout << password << '\n'; return 0; } int main() { char str1[N]; char str2[N]; while (cin >> str1 >> str2) { char result[N]; Encrypt(str1, result); char passwd[N]; unEncrypt(str2, passwd); } return 0; }