Предмет: Информатика,
автор: Anohinilyai
Решите задачу на C++
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, k-тый по счёту в алфавите после данного. Если этот символ выходит за границы, то берётся соответствующий из начала строки. Например, для k=3 символ A заменяется на D, символ B — на E, символ C — на F, ..., символ Z – на C. Аналогично, строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.
Дана строка, зашифруйте её при помощи шифра Цезаря для k=3.
Пожалуйста, 25 баллов
Ответы
Автор ответа:
20
Ответ:
#include <iostream>
#include <set>
using namespace std;
int main()
{
string a, res;
getline(cin, a);
for(int i = 0; i < a.length(); i++){
if((int)a[i] >= 65 && (int)a[i] <= 90) res += (char)(65 + (((((int)a[i]) - 65) + 3) % 26));
else if((int)a[i] >= 97 && (int)a[i] <= 122) res += (char)(97 + (((((int)a[i]) - 97) + 3) % 26));
else res += a[i];
}
cout << res;
return 0;
}
Объяснение:
Алгоритм простой. Побуквенно считываем строку и если буква - элемент латинского алфавита - кодируем ее, иначе оставляем как есть.
P.s. Если помог ответ, жмякните на "Спасибо", пожалуйста. Это мотивирует давать ответы дальше.
Похожие вопросы
Предмет: Английский язык,
автор: Nasiaa
Предмет: Русский язык,
автор: данилRus1
Предмет: Немецкий язык,
автор: vikakorol2010
Предмет: Математика,
автор: e7dap7ep
Предмет: Математика,
автор: Malinata