6 / 6 / 0
Регистрация: 23.02.2021
Сообщений: 67
1

Шифр Цезаря

28.03.2021, 13:51. Показов 4422. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, 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.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2021, 13:51
Ответы с готовыми решениями:

Шифр Цезаря
Здравствуйте. Написал программу, какая шифрует введенный текст сдвигом по алфавиту вправо, но она...

Шифр Цезаря
есть код программы для взлома Шыффра Цэзара но никак немогу доделать ее чтобы взломать строку ...

Шифр Цезаря
Створити програму, що реалізовує алгоритм дешифрування Цезаря, для латинського алфавіту з...

C++ Шифр Цезаря
Help нужно написать программу на С++, которая шифрует русские и английские слова. Делает запрос на...

2
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
28.03.2021, 16:31 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <string>
 
template <int OFFSET> // OFFSET == k
class Ceasar
{
public:
    Ceasar() = default;
    void SetString(std::string& str) { m_str = str; }
    std::string GetString() const { return m_str; }
    void Encode();
    void Decode();
private:
    std::string m_str;
    static constexpr int cm_abc_span = 'z' - 'a';
};
 
template <int OFFSET>
void Ceasar<OFFSET>::Encode()
{
    if (m_str.empty())
    {
        return;
    }
 
    std::string::size_type len = m_str.length(), i = 0;
    while (i < len)
    {
        if (m_str[i] >= 'a' && m_str[i] <= 'z')
        {
            m_str[i] = (m_str[i] - 'a' + OFFSET) % cm_abc_span + 'a';
        }
        else if (m_str[i] >= 'A' && m_str[i] <= 'Z')
        {
            m_str[i] = (m_str[i] - 'A' + OFFSET) % cm_abc_span + 'A';
        }
        ++i;
    }
}
 
template <int OFFSET>
void Ceasar<OFFSET>::Decode()
{
    if (m_str.empty())
    {
        return;
    }
 
    std::string::size_type len = m_str.length(), i = 0;
    while (i < len)
    {
        if (m_str[i] >= 'a' && m_str[i] <= 'z')
        {
            m_str[i] -= OFFSET;
            if (m_str[i] < 'a')
            {
                m_str[i] += cm_abc_span;
            }
        }
        else if (m_str[i] >= 'A' && m_str[i] <= 'Z')
        {
            m_str[i] -= OFFSET;
            if (m_str[i] < 'A')
            {
                m_str[i] += cm_abc_span;
            }
        }
        ++i;
    }
}
 
int main()
{
    Ceasar<3> cipher;
    std::string str = "In a hole in the ground there lived a hobbit.";
    cipher.SetString(str);
    std::cout << "Original: " << cipher.GetString() << std::endl;
    cipher.Encode();
    std::cout << "Encoded:  " << cipher.GetString() << std::endl;
    cipher.Decode();
    std::cout << "Decoded:  " << cipher.GetString() << std::endl;
}
0
2 / 1 / 1
Регистрация: 22.03.2021
Сообщений: 9
10.04.2022, 12:01 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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;
}
0
10.04.2022, 12:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2022, 12:01
Помогаю со студенческими работами здесь

Шифр Цезаря
Доброго времени суток всем Задача состоит в том,чтобы считать txt,и зашифровать его шифром...

Шифр Цезаря
Здравствуйте. Помогите, пожалуйста. Необходимо сделать так, чтобы шифр не вылезал за рамки...

Шифр Цезаря
Вот есть готовый код программы, может, кому понадобиться:) #include&lt;iostream&gt; #include&lt;conio.h&gt;...

Шифр Цезаря
Объясните пожалуйста есть формула для шифра Цезаря :En(x) = (x +n)mod26 почему в коде надо еще...

Шифр Цезаря
Ребята , помогите решить задачку, битый час сижу, не могу понять . Надо чтобы введенная буква...

Шифр цезаря
Искал в интернете интересные проектики для новичков, и вот нашел такую интересную вещь, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru