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

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

Войти
Регистрация
Восстановить пароль
 
Chipa
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 10
#1

Зашифровать слово по имеющемуся алфавиту (своему) - C++

26.03.2014, 21:24. Просмотров 216. Ответов 0
Метки нет (Все метки)

Требуется зашифровать слово по имеющемуся алфавиту(своему),для этого вводится строка из символов например "abc", определяется их положение в алфавите и шифруется циклическим образом смещение по алфавиту на значение расположения символа в алфавите.Так "abc" принимают значение "123" ,которые записываются в динамический массив.
Все бы хорошо, но в итоговом тексте не шифруются 3 символа, более того выводит "НННbdf240c"(начальный текст "abc123beer")
"HHH" проверяю какие значения они принимают и почему-то это значения "=" все три..я в ступоре..как символы смогли принять значение "=" и что делать??
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
// Chipa.shifr+.cpp: главный файл проекта.
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
    char a[14]={' ','a','b','c','d','e','f','r','1','2','3','4','5','0'};
    char b;
    int n=0,k,j,i=0;
    char *key;
    key=new char[80];
    cout<<"kluch"<<endl;
    cin>>key;
    int count=strlen(key);
    int *c;
    c=new int[count];
    for (i=0;i<count;i++)
        for (j=0;j<14;j++)
            if (key[i]==a[j])
            {c[i]=j; break;}
    ifstream f;
    f.open ("text.txt");
    while (f.good())
    {f.get(b);
        n++;}
    k=n-1;
    f.close();
    char *g;
    g=new char[n];
    f.open ("text.txt");
    while (f.good())
    {f.get(b);
        *(g+i)=b;
        if (i<k)
    i++;}
    f.close();
    ofstream h;
    int m=0;
    for (i=0;i<k;i++)
        for (j=0;j<14;j++)
            if (g[i]==a[j])
    {if (m>=count)
    m=0;
    j=(j+c[m])%14;
    m++;
    g[i]=a[j];
    break;}
            cout<<g[0];
    h.open("text1.txt");
    for (i=0;i<k;i++)
    h<<g[i];
    h.close();
    delete []g;
    delete []c;
    delete []key;
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 21:24     Зашифровать слово по имеющемуся алфавиту (своему)
Посмотрите здесь:

Упорядочить каждое слово строки по алфавиту - C++
Я не знаю, как можно сделать такую программу, которая бы выводила решения через пробел. Вообще. Не смог найти информацию, никакую. У...

Дан массив из слов (в одной строке одно слово). Зашифровать текст, меняя порядок букв в словах на обратный - C++
помогите

Исправить ошибку. Программа находит в введенном тексте слово, в котором буквы идут по алфавиту - C++
Программа находит в введенном тексте слово, в котором буквы идут по алфавиту и выводит его на экран. Написала программу, но она работает...

Строки. Вывести на печать то слово этой строки, которое по алфавиту предшествует всем другим - C++
Дана строка из 20 различных слов (словом считается любой набор букв, за которым следует пробел). Вывести на печать то слово этой строки,...

Метод, возвращающий данные по имеющемуся ключу массива MAP - C++
Исходный код: #include &lt;string&gt; #include &quot;map.h&quot; class Recipe{ protected: AnsiString name_recipe; //название...

В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны - C++
Не могу сообразить как написать программу: Пользователь вводит текст Необходимо замениь слово А(любое слово) на слово В(любое...

Определить изоморфен ли граф своему дополнению - C++
Добрый день. Существует ли какой либо критерий для неориентированных графов. В данном случае есть граф и есть его дополнение нужно...

Определить, кратны ли числа последовательности своему порядковому номеру - C++
Дана последовательность целых чисел, конец которой обозначен нулем. Определить, кратны ли числа последовательности своему...

Определить, кратны ли числа последовательности своему порядковому номеру - C++
1.Дана последовательность целых чисел, конец которой обозначен нулём.Определить кратны ли числа последовательности своему порядковому...

Найти элемент массива с четным номером,равный своему удвоенному индексу - C++
Компилятор выдает ошибку:&quot;fatal error LNK1169: обнаружен многократно определенный символ - один или более&quot; Мне нужно,чтобы массив...


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

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

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