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

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

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



Конечно, вот пример кода на C++, который зашифрует строку с использованием шифра Цезаря для k=3:
cpp#include <iostream>
#include <string>
using namespace std;
string encryptCaesarCipher(const string& input, int shift) {
string encryptedText = input;
for (char& c : encryptedText) {
if (isalpha(c)) {
char base = isupper(c) ? 'A' : 'a';
c = static_cast<char>((c - base + shift) % 26 + base);
}
}
return encryptedText;
}
int main() {
string input;
cout << "Введите строку для шифрования: ";
getline(cin, input);
int shift = 3; // Значение k для шифра Цезаря
string encryptedText = encryptCaesarCipher(input, shift);
cout << "Зашифрованная строка: " << encryptedText << endl;
return 0;
}
Этот код сначала запрашивает ввод строки, а затем шифрует ее, используя шифр Цезаря с сдвигом k=3. Зашифрованный текст выводится на экран.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili