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

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

Войти
Регистрация
Восстановить пароль
 
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
#1

Разбираемся с функциями и пишем Encode & Decode - C++

13.12.2013, 20:32. Просмотров 613. Ответов 3
Метки нет (Все метки)

Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать), которые получают два параметра str и alpha типа string. В первом параметре задается слово, подлежащее шифрованию (расшифровке), второй представляет собой некоторую перестановку 26 латинских букв алфавита. Принцип преобразования для шифрации состоит в следующем. Если некоторая буква в str является k–ой буквой в обычном алфавите, то вместо нее должна быть взята буква из k–ой позиции "нового" алфавита alpha. Для подпрограммы дешифровки используется обратный принцип.


Собственно вот код, естественно не работает.

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
#include <iostream>
#include <string>
#include <conio.h>
//#define a "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
//#define b "ZYXWVUTSRQPONMLKJIHGFEDCBA"
 
char a[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char b[27]="ZYXWVUTSRQPONMLKJIHGFEDCBA";
 
using namespace std;
 
void decode (char str)
{
 
    cout << str << endl;
    int i=0, j=0, d=sizeof str;
    for (i; i<d; i++)
    {
        for (j; j<27; j++)
    {
        if (str[i]==b[j]) str[i]=j;
    }
 
    }
 
        cout << str << endl;
    
 
}
 
void encode (char str)
{
    cout << str << endl;
    int i=0, j=0, d=sizeof str;
    for (i; i<d; i++)
    { for (j; j<27; j++)
    {
        if (str[i]==a[j]) str[i]=j;
    }
    }
    decode (str);
}
 
int main()
{    
    cout << "Encode alphabet =" << b <<endl;
    cout << "Decode alphabet =" << a <<endl;
    char str;
    cout << "Input some text=";
    getline (cin, str);
    encode (str);
    getch ();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбираемся с функциями и пишем Encode & Decode (C++):

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;) - C++
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A { ...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? - C++
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

Подкиньте функцию base64_decode\encode - C++
Помогите найти функцию base64_decode\encode, я уже перепробовал все что нашол в гугле и ниодна не шифрует правильно, мб у кого завалялась

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& - C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? - C++
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

Порядок вычисления: операторы «|» и «||», «&» и «&&» - C++
В Java булевые операторы «|» и «||», и «&amp;» и «&amp;&amp;» отличаются друг от друга порядком вычеслений, а в C++ так же как и в Java или...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
13.12.2013, 21:14 #2
Исходя из предположения, что текст капсом и ключ всегда верен:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string encode(const string& plaintext, const string& eKey)
{
    string cyphertext = plaintext;
    for(size_t i = 0; i != plaintext.size(); ++i)
        cyphertext[i] = eKey[plaintext[i] - 'A'];
    return cyphertext;
}
 
string getDecodeKey(const string& eKey)
{
    string dKey = eKey;
    for(size_t i = 0; i != eKey.size(); ++i)
        dKey[eKey[i] - 'A'] = 'A' + i;
    return dKey;
}
 
string decode(const string& cyphertext, const string& eKey)
{
    return encode(cyphertext, getDecodeKey(eKey));
}
0
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
14.12.2013, 13:11  [ТС] #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Исходя из предположения, что текст капсом и ключ всегда верен:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string encode(const string& plaintext, const string& eKey)
{
    string cyphertext = plaintext;
    for(size_t i = 0; i != plaintext.size(); ++i)
        cyphertext[i] = eKey[plaintext[i] - 'A'];
    return cyphertext;
}
 
string getDecodeKey(const string& eKey)
{
    string dKey = eKey;
    for(size_t i = 0; i != eKey.size(); ++i)
        dKey[eKey[i] - 'A'] = 'A' + i;
    return dKey;
}
 
string decode(const string& cyphertext, const string& eKey)
{
    return encode(cyphertext, getDecodeKey(eKey));
}
Да, ключ всегда верен и капсом все пишется. Это на стринг, а я должен написать на char +для меня ваш код не очень понятен, хотя общий смысл вижу, что тот же.
0
KOPOJI
15.12.2013, 12:51     Разбираемся с функциями и пишем Encode & Decode
  #4
 Комментарий модератора 
Кросспостинг http://www.cyberforum.ru/order-progr...ad1041191.html.
Закрыто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 12:51
Привет! Вот еще темы с ответами:

Friend ostream& operator<<(ostream& stream, CArr& obj); - C++
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void swap(int *a, int *b); void swap(int &amp;a, int &amp;b); ...

base64 Decode\Encode - Delphi
Привет.Подскажите пожалуйста, как декодировать и снова кодировать base64 в делфи? Кинул на форму компоненты Indy, но в функциях так и не...

Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать) - C#
Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать), которые получают два параметра str и alpha типа string. В первом...

Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать) - Delphi
(в формах)Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать), которые получают два параметра str и alpha типа string. В...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.12.2013, 12:51
Закрытая тема Создать тему
Опции темы

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