Вопрос задан 24.06.2023 в 21:01. Предмет Информатика. Спрашивает Вавилов Алексей.

На c++ пожалуйста Шифр Цезаря В шифре Цезаря каждый символ, являющийся буквой латинского

алфавита, заменяется на другой символ, 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 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сорокина Алиса.

Ответ:

#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 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример реализации шифра Цезаря на C++ для заданного значения k=3:

cpp
#include <iostream> #include <string> using namespace std; string encryptCaesarCipher(const string& input, int k) { string result = ""; for (char c : input) { if (isalpha(c)) { // Проверяем, является ли символ буквой char base = isupper(c) ? 'A' : 'a'; // Определяем базовую букву (верхний или нижний регистр) result += static_cast<char>((c - base + k) % 26 + base); // Применяем шифр Цезаря } else { result += c; // Оставляем символы, которые не являются буквами неизменными } } return result; } int main() { string input; getline(cin, input); int k = 3; string encrypted = encryptCaesarCipher(input, k); cout << encrypted << endl; return 0; }

Вы можете скопировать этот код, скомпилировать его и запустить на входных данных, чтобы зашифровать строку при помощи шифра Цезаря с k=3.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос