/************************************************************************/
/* 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个字符。
输入:输入一串要加密的密码
输入一串加过密的密码
输出:输出加密后的字符
输出解密后的字符
例 输入 abcdefg BCDEFGH ****&&&
输出 BCDEFGH abcdefg ****&&& */
/* 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个字符。
输入:输入一串要加密的密码
输入一串加过密的密码
输出:输出加密后的字符
输出解密后的字符
例 输入 abcdefg BCDEFGH ****&&&
输出 BCDEFGH abcdefg ****&&& */
/************************************************************************/
#include <iostream>
#include <string>
using namespace std;
/************************************************************************/
/* 加密函数 */
/************************************************************************/
string Encrypt(string data){
string encrypted(data);
char temp;
for (int i = 0; i < data.size();++i)
{
if (data[i] >= 'a'&&data[i] <= 'z')
temp = data[i] - 32;
else if (data[i] >= 'A'&&data[i] <= 'Z')//大Z变成小z,实际应该变成小a
temp = data[i] + 32;
else if (data[i]>='0'&&data[i]<='9')
{
temp = data[i]; //等于本身
}
else{ //别的符号,先减1,因为后面统一加1
temp = data[i] - 1;
}
switch (temp) //特殊情况,特殊处理
{
case '9':
encrypted[i] = '0';
break;
case 'z':
encrypted[i] = 'a';
break;
case 'Z':
encrypted[i] = 'A';
break;
default:
encrypted[i] = temp + 1; //别的都加1
break;
}
}
return encrypted;
}
/************************************************************************/
/* 解密函数 */
/************************************************************************/
string unEncrypt(string data){
string encrypted(data);
char temp;
for (int i = 0; i < data.size(); ++i)
{
if (data[i] >= 'a'&&data[i] <= 'z')
temp = data[i] - 32;
else if (data[i] >= 'A'&&data[i] <= 'Z')//大Z变成小z,实际应该变成小a
temp = data[i] + 32;
else if (data[i] >= '0'&&data[i] <= '9')
{
temp = data[i]; //等于本身
}
else{ //别的符号
temp = data[i] + 1;
}
switch (temp) //特殊情况,特殊处理
{
case '0':
encrypted[i] = '9';
break;
case 'a':
encrypted[i] = 'z';
break;
case 'A':
encrypted[i] = 'Z';
break;
default:
encrypted[i] = temp -1;
break;
}
}
return encrypted;
}
int main(){
string input;//使用string类
string encrypt;
string unencrypt;
cout << "输入需要加密的字符串:" << endl;
while (getline(cin,input))
{
cout << "输出加密后的字符串:" << endl;
encrypt = Encrypt(input);
cout << encrypt << endl;
cout << "输出解密后的字符串:" << endl;
unencrypt = unEncrypt(encrypt);
cout << unencrypt << endl<<endl;
cout << "输入需要加密的字符串:" << endl;
}
return 0;
}