字符串加解密

来源:互联网 发布:淘宝上新模板 编辑:程序博客网 时间:2024/05/22 02:01

题目描述:

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

2、加密方法为:

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

其他字符不做变化。

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

接口描述:实现接口,每个接口实现1个基本操作

void Encrypt (char input[], int len):在该函数中实现字符串加密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

void unEncrypt (char input[], int len):在该函数中实现字符串解密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

知识点: 字符串

输入:

输入一串要加密的密码

输入一串加过密的密码

输出:

输出加密后的字符

输出解密后的字符

样例输入: abcdefg BCDEFGH

样例输出: BCDEFGH abcdefg

代码:

#include <iostream>#define LIMIT 100using namespace std;void Encrypt(char input[], int len){int i;char* output = (char*)malloc(len*sizeof(char));for (i = 0; i < len; i++){if (input[i] >= 'a'&&input[i] <= 'z'){if (input[i] != 'z')output[i] = input[i] + 1 + 'A' - 'a';elseoutput[i] = 'A';}else if (input[i] >= 'A'&&input[i] <= 'Z'){if (input[i] != 'Z')output[i] = input[i] + 1 + 'a' - 'A';elseoutput[i] = 'a';}else if (input[i] > '0'&&input[i] <= '9')output[i] = (input[i] - '0' + 1) % 10 + '0';elseoutput[i] = input[i];}output[i] = '\0';cout << output << endl;}void unEncrypt(char input[], int len){int i;char* output = (char*)malloc(len*sizeof(char));for (i = 0; i < len; i++){if (input[i] >= 'a'&&input[i] <= 'z'){if (input[i] != 'a')output[i] = input[i] - 1 + 'A' - 'a';elseoutput[i] = 'Z';}else if (input[i] >= 'A'&&input[i] <= 'Z'){if (input[i] != 'A')output[i] = input[i] - 1 + 'a' - 'A';elseoutput[i] = 'z';}else if (input[i] > '0'&&input[i] <= '9')output[i] = (input[i] - '0' + 10) % 10 -1 + '0';elseoutput[i] = input[i];}output[i] = '\0';cout << output << endl;}int main(){int len1, len2;char str1[200], str2[200];cin.getline(str1, LIMIT + 1);cin.getline(str2, LIMIT + 1);len1 = strlen(str1);len2 = strlen(str2);Encrypt(str1, len1);unEncrypt(str2, len2);//cin.get();//cin.get();return 0;}

得分运行时间内存复杂度最大嵌套深度100(100)16ms2044KB134

0 0