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

С++ для начинающих

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

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

16.04.2013, 21:44. Просмотров 2881. Ответов 2
Метки нет (Все метки)

Здравствуйте!

Нужно написать программу, чтобы она шифровала произвольный текст методом подстановки:
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 минуты
Помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифрование данных методом подстановки (C++):

Шифрование данных методом подстановки - C++
доброе время суток. нужно составить программу, которая шифровала бы и расшифровывала бы текст методом подстановки и перестановки. причем...

Шифрование/дешифрование данных методом решетки - C++
Написать программу, осуществляющую шифрование и дешифрование каких-либо данных. Тип шифрования – шифрование методом решеток. Помогите...

Вывод зашифрованного текста методом подстановки - C++
делаю курсовую.тема шифровка/дешифровка текста методом подстановка+перестановка. суть в том, что пользователь вводит текст для шифрования...

Написать программу шифрования и дешифрования методом подстановки - C++
Написать программу шифрования и дешифрования методом подстановки!!!

Шифрование методом Виженера - C++
Ребята есть код, помогите разобраться с неправильным выводом зашифрованного текста, вместо русских букв выводит зашифрованный текст с...

Шифрование методом Вижинера - C++
Ребята помогите пожалуйста, может у кого-то завалялся исходный код этой программки или похожий, тема довольно распространенная, но мне...

2
anmartex
...
1706 / 1199 / 496
Регистрация: 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;
}
Шифрование данных методом подстановки
1
InSperrO
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 24
17.04.2013, 10:15  [ТС] #3
Цитата Сообщение от anmartex Посмотреть сообщение
InSperrO, ох вы и намудрили!


Большое спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 10:15
Привет! Вот еще темы с ответами:

Шифрование Методом Виженера На C++ - C++
Здравствуйте. Мне нужна программа на тему Шифрование методом виженера. Я пытался найти в интернете варианты шифрования нашел только вот...

Шифрование методом перестановки - C++
Здравствуйте уважаемые! Прошу помощи в написании программы. Пробывал писать сам, но чего то не туда пошел. Буду очень признателен...

Шифрование методом цезаря - C++
Здравствуйте, прошу вас о помощи. Это может показаться наглым, но, мне срочно нужна помощь с курсовым проектом, дело в том что с...

Шифрование методом Цезаря - C++
Шифрование методом Цезаря со сдвигом на 6 нужна блок–схема


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru