C/C++

Задача C++ на Сириусе

Шифр Цезаря

В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется другим символом, 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.
Денис Лапо
Денис Лапо
98
На этом сайте вопросы про шифр Цезаря задавались десятки, если не сотни раз. Что тебе помешало воспользоваться поиском и сразу получить готовый код - вместо того, чтобы публиковать ещё один вопрос, неотличимый от кучи идентичных вопросов?
Сергей Колтунов
Сергей Колтунов
55 381
Лучший ответ
 #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
РД
Роман Дрыга
25 860
Денис Лапо Работает, Спасибо
Ненавижу нейронок, которые отвечают за одну секунду, и то которые отвечают только на лёгкие задачи, как например нейронка Sergio, которая вам первая ответила.
Вот чуть попроще код.
 #include  

using namespace std;

int main() {
string s;
getline(cin, s);
for (int i = 0; i < s.size(); i++) {
if ((s[i] >= 'A' && s[i] = 'a' && s[i]
Danik Danik
Danik Danik
455