Форум программистов, компьютерный форум CyberForum.ru

Метод Цезаря с ключом - C++

Восстановить пароль Регистрация
 
Uka4me
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 12
10.05.2013, 00:28     Метод Цезаря с ключом #1
Сделал программу, шифрует вроде правильно, но есть ошибка, так и не могу найти, помогите...

Ключевое слово - 'bad'. Его символам соответствуют числа 1, 0, и 3. Тогда слово 'carrot' превратится в 'dausow'. Сдвигаем 'c' на 1, 'a' на 0, 'r' на 3. Ключевое слово закончилось - переходим к его началу. Сдвигаем 'r' на 1, 'o' на 0, 't' на 3.

Пример ввода
bad
carrot
aaaaa
-1
Пример вывода
dausow
badba

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <string.h>
using namespace std;
const char low_ch[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
  'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int z = 0;
char ValueChar(int d)
{
     if(d>25)
           return low_ch[d-26];  
return low_ch[d];
}
int ValueInt(char d)
{
     
  for(int i=0;i<26;i++)
          if(low_ch[i] == d)
                       return i;
}
 
void ReadFile1(char* file_name)
{
  
  string line;
  string mas[100];
  string rmas;
  int max;
 
  
  ifstream myfile(file_name);
  
  ofstream wr("output.txt"); 
  
  if (myfile.is_open())
  {
    while ( myfile.good() )
    {
      getline(myfile,line);
      mas[z] = line;
      
      z++;
    }
    myfile.close();
  }      
int maxi = mas[0].length();
  int key = 0;
  for(int j=1;j<z;j++)
  {
    if(mas[j] != "-1")
    {
     int l =0;
     while(mas[j][l] != '\0')
     {
         
         if(key>=maxi) key = 0;
         rmas += ValueChar(ValueInt(mas[j][l])+ValueInt(mas[0][key])); 
         key++;  
         l++;
     }
     wr<<rmas<<"\n";
     rmas = "";
     key = 0;
    }
  }
}
 
int main(int argc, char *argv[])
{
    ReadFile1("input.txt");
    //system("PAUSE");
}
Добавлено через 49 минут
Ладно, вторая тема и сам нашел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 00:28     Метод Цезаря с ключом
Посмотрите здесь:

C++ Криптографический алгоритм с открытым ключом RSA
Перестановка столбцов матрицы с заданным ключом C++
Алгоритм шифрования и дешифорвания строковых данных методом XOR с ключом. C++
C++ Шифрование/дешифрование методом RSA с открытым ключом. С++
С ключом /MT не собирается std::string C++
Удалить из массива элемент с заданным ключом C++
C++ Шифрование методом перестановки с заданным ключом текста любой длины
C++ Написать программу для поиска всех элементов в массиве за заданным ключом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru