#include <iostream>
using namespace std;
int main()
{
for (int j = 0; j < 2; j++)
{
int choice = 0;
cin >> choice;
int key = 0;
cin >> key;
string words;
cin >> words;
if (choice == 0)//选择加密
{
for (int i = 0; i < words.size(); i++)//大小写转换
{
if (words[i] >= 'a' && words[i] <= 'z')
{
words[i] = 'A' + words[i] - 'a';
}
else if (words[i] >= 'A' && words[i] <= 'Z')
{
words[i] = 'a' + words[i] - 'A';
}
}
for (int i = 0; i < words.size(); i++)//加密
{
if (words[i] >= 'a' && words[i] <= 'z' && words[i] + key > 'z')
{
words[i] = 'a' + (words[i] + key - 'z') - 1;
}
else if (words[i] >= 'A' && words[i] <= 'Z' && words[i] + key > 'Z')
{
words[i] = 'A' + (words[i] + key - 'Z') - 1;
}
else
{
words[i] = words[i] + key;
}
}
}
else if (choice == 1)//选择解密
{
for (int i = 0; i < words.size(); i++)//大小写转换
{
if (words[i] >= 'a' && words[i] <= 'z')
{
words[i] = 'A' + words[i] - 'a';
}
else if (words[i] >= 'A' && words[i] <= 'Z')
{
words[i] = 'a' + words[i] - 'A';
}
}
for (int i = 0; i < words.size(); i++)//解密
{
if (words[i] >= 'a' && words[i] <= 'z' && words[i] - key < 'a')
{
words[i] = 'z' - ('a' - (words[i] - key)) + 1;
}
else if (words[i] >= 'A' && words[i] <= 'Z' && words[i] - key < 'A')
{
words[i] = 'Z' - ('A' - (words[i] - key)) + 1;
}
else
{
words[i] = words[i] - key;
}
}
}
cout << words << endl;
}
return 0;
}
移位密码——oj转存
最新推荐文章于 2024-07-25 12:39:48 发布