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

Дана строка, зашифруйте её при шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k = 3.

Указание

Cделайте функцию CaesarCipherChar (c, k), шифрующую один символ.

Примеры
Ввод
Вывод
In a hole in the ground there lived a hobbit.
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
Язык Python!

DeadlyCrawley DeadlyCrawley    2   03.06.2020 18:59    51

Ответы
влада415 влада415  04.06.2020 07:02

#include <iostream>

#include <string>

using  namespace std;

int main()

{

string w;

int b;

string arr;

 

getline(cin,w);

cin>>b;

cin.ignore();

getline(cin,arr);

 

if(w == "szyfruj")

{

 for(int i=0; i<arr.size(); i++)

 {

  if(int(arr[i])>=97 &&  int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)

  {

   if(int(arr[i])>=97 &&  int(arr[i])<=122)

   {

    if(int(arr[i])+b>122) arr[i]-=26;

    arr[i]+=b;

   }

   else

   {

    if(int (arr[i])+b>90) arr[i]-=26;

    arr[i]+=b;

   }

  }

 }

}

if(w == "odszyfruj")

{

 for(int i=0; i<arr.size(); i++)

 {

  if(int(arr[i])>=97 &&  int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)

  {

   if(int(arr[i])>=97 &&  int(arr[i])<=122)

   {

    if(int(arr[i])-b<97) arr[i]+=26;

    arr[i]-=b;

   }

   else

   {

    if(int (arr[i])-b<65) arr[i]+=26;

    arr[i]-=b;

   }

  }

 }

}

cout<<arr;

return 0;

}

Объяснение:

код  на с++ для примера

пункт  со  сдвигом  букв сам  сделаешь  

P. S.  у меня на  5 они  сдвигаются,

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика