• С++ Написать код программы для реализации алгоритма шифрования "Шифр Цезаря" Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Обязательное условие – украинский алфавит Чтобы было меньше проблем, используйте большие буквы. чем легче код, тем лучше, и желательно с пояснением

Ответы 1

  • #include <iostream>

    #include <string>

    using namespace std;

    // Функция для шифрования строки по алгоритму Цезаря

    string encrypt(string text, int key)

    {

       string result = ""; // Пустая строка для хранения зашифрованного текста

       for (int i = 0; i < text.length(); i++) // Цикл по всем символам текста

       {

           char c = text[i]; // Текущий символ

           if (c >= 'A' && c <= 'Z') // Если символ - большая латинская буква

           {

               c = (c - 'A' + key) % 26 + 'A'; // Сдвигаем символ на key позиций вправо по алфавиту и приводим к диапазону от A до Z

           }

           else if (c >= 'А' && c <= 'Я') // Если символ - большая кириллическая буква

           {

               c = (c - 'А' + key) % 32 + 'А'; // Сдвигаем символ на key позиций вправо по алфавиту и приводим к диапазону от А до Я

           }

           result += c; // Добавляем символ к зашифрованному тексту

       }

       return result; // Возвращаем зашифрованный текст

    }

    // Главная функция программы

    int main()

    {

       string text; // Строка для хранения исходного текста

       int key; // Число для хранения ключа шифрования

       cout << "Введите текст: "; // Выводим приглашение для ввода текста

       getline(cin, text); // Считываем текст с клавиатуры

       cout << "Введите ключ: "; // Выводим приглашение для ввода ключа

       cin >> key; // Считываем ключ с клавиатуры

       string encrypted = encrypt(text, key); // Шифруем текст по алгоритму Цезаря с заданным ключом

       cout << "Зашифрованный текст: " << encrypted << endl; // Выводим зашифрованный текст на экран

       return 0; // Завершаем программу

    }

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years