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

Шифрование данных методом подстановки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
16.04.2013, 21:44     Шифрование данных методом подстановки #1
Здравствуйте!

Нужно написать программу, чтобы она шифровала произвольный текст методом подстановки:
V={а,б,в,г,д,е} m=2

Не очень силен в программировании. Получилось набросать вот такой код:
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int main()
{setlocale(LC_ALL,"Russian");
int i,n;
char* c[30];
string s;
string a[30]={"аб","ав","аг","ад","ае","бв",
"бг","бд","бе","вг","вд","ве","гд",
"ге","де","ед","ег","дг","ев","дв",
"гв","еб","дб","гб","вб","еа","да",
"га","ва","ба"};
string b[30]={"01","02","03","04","05","06","07","08","09",
"10","11","12","13","14","15","16","17","18","19","20",
"21","22","23","24","25","26","27","28","29","30"};
 
cout << "Введите текст из а,б,в,г,д,е кратно 2!" << endl;
cin  >> s ;
if ((s.length()%2)==0)
{cout << "код шифра значения "<<s<<" := " ;
 
for (i=s.length()>0;i=(i-2);)
        {   
            s.copy(c[n],2,i=+2);
            n=++i;
        }
for (n=(n-1);n>=0;n--)
    {
        for (i=0;i<30;i++)
        {if (c==a[i])
        cout<<b[i]<<endl;
        }
    }
}
else {cout<<"Введите слово кратно 2!!!";}
getch();
 
}
Но есть какая то ошибка в коде. Что тут необходимо исправить?

Спасибо!

Добавлено через 48 секунд
Ошибка где-то в циклах.

Добавлено через 22 минуты
Помогите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 21:44     Шифрование данных методом подстановки
Посмотрите здесь:

Шифрование методом замены! C++
C++ Написать программу шифрования и дешифрования методом подстановки
C++ шифрование «методом бутерброда»
C++ Шифрование методом перестановки
Шифрование методом Вижинера C++
C++ Шифрование данных методом подстановки
C++ шифрование методом цезаря
C++ Шифрование/дешифрование данных методом решетки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
17.04.2013, 09:27     Шифрование данных методом подстановки #2
InSperrO, ох вы и намудрили!
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
#include <iostream>
#include <locale>
#include <string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
   setlocale(LC_ALL, "Russian");
 
   string s;
   string a[30] = {"аб", "ав", "аг", "ад", "ае", "бв", "бг", "бд", "бе", "вг",
                   "вд", "ве", "гд", "ге", "де", "ед", "ег", "дг", "ев", "дв",
                   "гв", "еб", "дб", "гб", "вб", "еа", "да", "га", "ва", "ба"};
 
   string b[30] = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10",
                   "11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
                   "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"};
 
   cout << "Введите слово из а,б,в,г,д,е кратно 2!: ";
   cin  >> s ;
   if ((s.length() % 2) == 0)
   {
      cout << "код шифра значения " << s << " := " ;
 
      for (size_t i = 0; i < s.length(); i += 2)
      {
         for (size_t j = 0; (j < 30); ++j)
         {
            if (s.compare(i, 2, a[j]) == 0)
            {
               s.replace(i, 2, b[j]);
               break;
            }
         }
      }
 
      std::cout << s << std::endl;
   }
   else
   {
      cout << "Введите слово кратно 2!!!";
   }
 
   system("pause");
 
   return 0;
}
Шифрование данных методом подстановки
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
17.04.2013, 10:15  [ТС]     Шифрование данных методом подстановки #3
Цитата Сообщение от anmartex Посмотреть сообщение
InSperrO, ох вы и намудрили!


Большое спасибо!
Yandex
Объявления
17.04.2013, 10:15     Шифрование данных методом подстановки
Ответ Создать тему
Опции темы

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