牛客网&&华为机试&&字符串加密
代码实现
#include<iostream>
#include<string>
#include<cstring>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
void Encrypt(char aucPassword[], char aucResult[]) //在该函数中实现字符串加密并输出
{
int len = strlen(aucPassword);
int i = 0;
for (i = 0; i < len; ++i)
{
if (isupper(aucPassword[i])) //判断是否为大写字母
{
if (aucPassword[i] == 'Z')
aucResult[i] = 'a';
else
aucResult[i] = tolower(aucPassword[i]) + 1;
}
else if (islower(aucPassword[i])) //判断是否为小写字母
{
if (aucPassword[i] == 'z')
aucResult[i] = 'A';
else
aucResult[i] = toupper(aucPassword[i]) + 1;
}
else if (isdigit(aucPassword[i])) //判断是否为数字
{
if (aucPassword[i] == '9')
{
aucResult[i] = '0';
}
else
aucResult[i] = aucPassword[i] + 1;
}
else
aucResult[i] = aucPassword[i];
}
aucResult[i] = '\0';
}
int unEncrypt(char result[], char password[]) //在该函数中实现字符串解密并输出
{
int len = strlen(result);
int i = 0;
for (i = 0; i < len; ++i)
{
if (isupper(result[i])) //判断是否为大写字母
{
if (result[i] == 'A')
password[i] = 'z';
else
password[i] = tolower(result[i]) - 1;
}
else if (islower(result[i])) //判断是否为小写字母
{
if (result[i] == 'a')
password[i] = 'Z';
else
password[i] = toupper(result[i]) - 1;
}
else if (isdigit(result[i])) //判断是否为数字
{
if (result[i] == '0')
{
password[i] = '9';
}
else
password[i] = result[i] - 1;
}
else
password[i] = result[i];
}
password[i] = '\0';
return 0;
}
int main()
{
char str1Password[1000];
char str2Password[1000];
char str1Result[1000];
char str2Result[1000];
while (cin.getline(str1Password, 1000))
{
cin.getline(str2Result, 1000);
//加密操作
Encrypt(str1Password, str1Result);
//解密操作
unEncrypt(str2Result, str2Password);
for(int i = 0; i < strlen(str1Result); ++i)
cout << str1Result[i];
cout << endl;
for(int i = 0; i < strlen(str2Password); ++i)
cout << str2Password[i];
cout << endl;
//连续使用cout输出,结果第二个cout不能输出数据?
//cout << str1Result << endl;
//cout << str2Password << endl;
}
return 0;
}
编程笔记
- 代码实现解题思路:按照题意要求一步一步编写代码即可。