Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/411: Рейтинг темы: голосов - 411, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 07.02.2019
Сообщений: 4

Шифр Цезаря С++

18.03.2019, 18:44. Показов 86076. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже долго сижу, мучаюсь. Не могу понять, что я делаю не так. Подскажите пожалуйста что неправильно, как исправить и где можно почитать по этой теме.
Суть задания:
Реализовать программно шифрование шифром Цезаря:
- алфавит задать в теле программы (АБВГДЕЖЗИЙКЛМНПРСТФХЦЧШЩЪЫЬЭЮЯ_.,012345 6789);
- сообщение и значение ключа вводится с клавиатуры;
- результат шифрования выводится на экран.

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
#include<iostream>
#include<Windows.h>
#include<string>
using namespace std;
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int i=0, j=0, k;
char ABC[]={'А','Б','В','Г','Д','Е','Ж','З','И',
            'Й','К','Л','М','Н','О','П','Р','С',
            'Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ',
            'Ы','Ь','Э','Ю','Я','_','.',',','0',
            '1','2','3','4','5','6','7','8','9'};
char msg[80];
cout<<"Введите сообщение, которое будет закодировано: "<<endl;
cin>>msg;
cout<<"\nВведите сдвиг:"<<endl;
cin>>k;
cout<<endl;
for (i=0; i<strlen(msg); i++)
{   if(i==' ') msg[i]=' ';
    else{
    for (j = 0; j < 45; j++)
    {
        if (msg[i] == ABC[j])
        {
        if (j >= 45)
        msg[i] = ABC[i-45];
        else
        msg[i] = ABC[j+k];
        break;
        }
    }}
    
}
cout<<"Полученное закодированное сообщение: "<<endl;
cout<<msg<<endl;
return 0;
}
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2019, 18:44
Ответы с готовыми решениями:

Шифр цезаря
Столкнулся с такой проблемой нужно &quot;Разработать прикладное приложение для шифрования текста с помощью шифра простой замены. Приложение...

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

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

1
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
18.03.2019, 19:45
Лучший ответ Сообщение было отмечено MMoment как решение

Решение

лень искать про этот шифр, попробуйте так:
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
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i = 0, k;
    char ABC[] = { 'А','Б','В','Г','Д','Е','Ж','З','И',
                'Й','К','Л','М','Н','О','П','Р','С',
                'Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ',
                'Ы','Ь','Э','Ю','Я','_','.',',','0',
                '1','2','3','4','5','6','7','8','9' };
    char msg[80];
    cout << "Введите сообщение, которое будет закодировано: " << endl;
    cin.getline(msg, 80);
    cout << "\nВведите сдвиг:" << endl;
    cin >> k;
    cout << endl;
    char* begin = ABC;
    char* end = ABC + sizeof(ABC);
    for (; msg[i]; ++i)
    {
        char* ch = find(begin, end, msg[i]);
        if (ch != end) msg[i] = *(begin + (ch - begin + k) % sizeof(ABC));
    }
    cout << "Полученное закодированное сообщение: " << endl;
    cout << msg << endl;
    return 0;
}
Добавлено через 5 минут
только добавьте
C++
1
#include <algorithm>
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2019, 19:45
Помогаю со студенческими работами здесь

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

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

Шифр Цезаря
есть код программы для взлома Шыффра Цэзара но никак немогу доделать ее чтобы взломать строку VTA.P,JR;STJQATPZX,VJX,JF;A...

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

Шифр Цезаря
text - исходный code - закодированный decode - дешифрованный после компиляции в файл code в конец ложится пробел, откуда он...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru