Форум программистов, компьютерный форум, киберфорум
Наши страницы

Нужно сделать функцию расшифровки (алгоритм Цезаря) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод UTF-8 символов на стандартное ус-во http://www.cyberforum.ru/cpp-beginners/thread687081.html
У K&R если задание на подсчёт каждого символа из стандартного потока. // K&R. Программа подсчитует количество каждого символа // из потока. #include <stdio.h> #define MAX_ALPHA 126 // 126 -...
C++ класс-контейнер ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во... http://www.cyberforum.ru/cpp-beginners/thread687079.html
C++ Решение матриц
Доброго времени суток. Недавно решил закончить старую программу для вычисления матриц (консоль). Начал переделывать код, и что-то неверно переделал программа компилиться но считает не правильно. У...
C++ Условные операторы цикла c++ Builder
Условные операторы цикла c++ Builder
C++ Хранение данных на внешних носителях http://www.cyberforum.ru/cpp-beginners/thread687061.html
Постановка задачи 1. Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные. 2. Вывести созданный файл на экран. 3. Удалить из файла данные в соответствии с...
C++ Принадлежит ли точка заштрихованной области (C++ Builder)? C++ Builder принадлежит ли точка заданным пределам (x:y) подробнее

Показать сообщение отдельно
seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216

Нужно сделать функцию расшифровки (алгоритм Цезаря) - C++

02.11.2012, 19:02. Просмотров 1021. Ответов 11
Метки (Все метки)

Всем привет ! Есть моя функция шифрования
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
char find_and_encr_char(char what_find,int key){
      char engl_abet[26]= {'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};
bool founded= false; // найдено ?
 
      char encr_char;
      for(int i=0;i<27;i++){
 
          if(what_find==' ') {
          encr_char='_';
          founded=true;
          return encr_char;
                             }
 
          int abskey=i+key; // номер елемента в массиве + ключ
                            if(engl_abet[i]==what_find){
                                if((i+key)>26){ abskey=(i+key)%26 ; }
                                encr_char=engl_abet[abskey];
                                founded=true;
                                break;
 
                                                       }
 
                            }
 
 
if(founded==false) encr_char=what_find; 
 
                              return encr_char; }

Нужно сделать обратную к ней, то есть расшифровки. Делаю так

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
char find_and_decr_char(char what_find,int key){
      char engl_abet[26]= {'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};
bool founded= false;
 
      char decr_char;
      for(int i=0;i<27;i++){
 
          if(what_find=='_') {
          decr_char=' ';
          founded=true;
          return decr_char;
                             }
 
          int abskey=i-key; 
                            if(engl_abet[i]==what_find){
                                if(abskey<-26){
                 
                                      abskey=(-1)*(i-key)%26 ;  //думаю ошибка где-то здесь 
 
                                           }
 
                                decr_char=engl_abet[abskey];
                                founded=true;
                                break;
 
                                                       }
 
                            }
 
 
if(founded==false) decr_char=what_find; 
 
                              return decr_char; }
Не корректно расшифровывает при больших ключах
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.