题目描述
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;
}