Регистрация
25 Май 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Шифр Цезаря



В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется другим символом, k

-м по счёту в алфавите после данного. Если этот символ выходит за границы списка, то берётся соответствующий символ из начала строки. Например, для k=3 символ A заменяется на D , символ B — на E , символ C — на F ... символ Z — на C . Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.



Дана строка, зашифруйте её при помощи шифра Цезаря для k=3 .



Входные данные



Дана строка из символов с ASCII кодами от 32

до 127

, длиной не больше 10000

символов.



Выходные данные



Выведите ответ задачи.



Примеры

Ввод

In a hole in the ground there lived a hobbit.

Вывод

Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
 
#include
#include
#include

using namespace std;

char encript(char ch, int k) {
static constexpr auto x = 26;
while (k >= x) k -= x;
static auto negative = [](char ch) { return ch < 0; };
static auto upper = [k](char ch) { return ch > 'Z' && ch 'z'; };
if (isalpha(ch)) {
ch += k;
if (negative(ch) || upper(ch) || lower(ch)) ch -= x;
}
return ch;
}

int main() {
constexpr size_t k = 3;
string line;
getline(cin, line);
for (auto& ch : line) ch = encript(ch, k);
cout
 
#include
#include
using namespace std;

int main() {
string s;
getline(cin, s);
for (char c : s) {
if (c >= 'A' && c
 
На этом сайте вопросы про шифр Цезаря задавались десятки, если не сотни раз. Что тебе помешало воспользоваться поиском и сразу получить готовый код - вместо того, чтобы публиковать ещё один вопрос, неотличимый от кучи идентичных вопросов?
 
Ненавижу нейронок, которые отвечают за одну секунду, и то которые отвечают только на лёгкие задачи, как например нейронка Sergio, которая вам первая ответила.
Вот чуть попроще код. #include

using namespace std;

int main() {
string s;
getline(cin, s);
for (int i = 0; i < s.size(); i++) {
if ((s >= 'A' && s = 'a' && s
 
Назад
Сверху