Предмет: Информатика, автор: Anohinilyai

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

Пожалуйста, 25 баллов

Ответы

Автор ответа: LixusMay
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. Если помог ответ, жмякните на "Спасибо", пожалуйста. Это мотивирует давать ответы дальше.

Похожие вопросы
Предмет: Русский язык, автор: данилRus1
Предмет: Немецкий язык, автор: vikakorol2010
Предмет: Математика, автор: Malinata