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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ Символы в строках http://www.cyberforum.ru/cpp-beginners/thread408717.html
Написал прог которая сортирует одну строку но вот в чем проблема я ни как не представляю и не понимаю как сделать так что бы был массив N количество строк и отсортировать символы в строках по алфавиту по критерию что первая строка идет по возрастанию вторая по спаданию и т.д #include <stdio.h> #include <conio.h> #include <windows.h> #include <dos.h> int main () {
C++ Ребяты помогите со строками чуток разобраться. Есть строка. В ней надо найти максимальное количество повторяющихся элементов. int main(){ char s = "pen stolb nos avtobus stil shik kaktus"; char c_max = ""; int max = 0; int col = 0; for ( unsigned int i=0; i<strlen(s); i++ ){ col = 0; http://www.cyberforum.ru/cpp-beginners/thread408715.html
C++ Найти наибольший среди отрицательных и наименьший среди положительных элементов массива
Задача такова: В введенном с клавиатуры одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов массива. Кто поможет, огромная благодарность :)
C++ "*&" - что это?
не понимаю для чего нужна "*&" запись. вот пример: int *z; int *&r = z; //объясните пожалуйста что она делает int a = 9; z = &a;
C++ Найти произведение элементов вектора, расположенных между максимальными и минимальными по модулю элементами http://www.cyberforum.ru/cpp-beginners/thread408705.html
Задайте два вектора А(n) и B(m). выполните задания: 1)найдите вектора С(n+m) с элементов векторов А и Б, сначала парных в порядке спадания, а потом непарных в порядке возрастания. 2)найдите произведение элементов вектора А, расположенных между максимальными и минимальными по модулю элементами. спасибо большое, потрите пожалуйста старую тему - там ошибки.
C++ выходной файл Записать выходной файл, разделить каждое число на полусумму первого отрикательного и 50-го числа файла. Помогите пожалуйста с этой задачей подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 11:01     Шифрование методом перестановки
Вот простенько на плюсиках
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
 
string encode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, encstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout<<"Error open file : "<<fPath.c_str()<<endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout<<"input string : "<<text.c_str()<<endl;
        for(i = 0; i < text.length(); i += lSize)
        {
            line = "";
            for(j = 0; j < lSize; j++)
                line += text[i + j];
            for(j = 0; j < lSize; j++)
                encstr += line[lKey[j]];
        }
    }
    return encstr;
}
 
string decode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, decstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout<<"Error open file : "<<fPath.c_str()<<endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout<<"input string : "<<text.c_str()<<endl;
        decstr = text;
        for(i = 0; i < text.length(); i += lSize)
        {
            for(j = 0; j < lSize; j++)
                decstr[i + lKey[j]] = text[i + j];
        }
    }
    return decstr;
}
 
int main()
{
    char chr;
    long lKey[5] = {0};
    long i, lSize= sizeof(lKey)/sizeof(lKey[0]);
    
    bool bMenu = true;
    string text;
    while(bMenu)
    {
        cout<<"***MENU***\n";
        cout<<"E - encode\n";
        cout<<"D - decode\n";
        cout<<(chr = getch())<<endl;
        switch(toupper(chr))
        {
        case 'E':
            cout<<"Enter key-block : \n";
            for(i = 0; i < lSize; i++)
            {
                cout<<"KEY["<<i + 1<<"] = ";
                cin>>lKey[i];
            }
            text = encode(lSize, lKey, "encode.txt");
            cout<<"Encoded text : "<<text.c_str()<<endl;
            break;
        case 'D':
            cout<<"Enter key-block : \n";
            for(i = 0; i < lSize; i++)
            {
                cout<<"KEY["<<i + 1<<"] = ";
                cin>>lKey[i];
            }
            text = decode(lSize, lKey, "decode.txt");
            cout<<"Decoded text : "<<text.c_str()<<endl;
            break;
        default:
            cout<<"Unsupported key is pressed\n";
            break;
        }
        cout<<"Press Y for see MENU once again\n";
        cout<<"Any other key - EXIT\n";
        cout<<(chr = getch())<<endl;
        if(toupper(chr) != 'Y')
            bMenu = false;
        system("cls");
    }
    system("pause");
    return 0;
}
Миниатюры
Шифрование методом перестановки   Шифрование методом перестановки  
Вложения
Тип файла: txt decode.txt (45 байт, 1111 просмотров)
Тип файла: txt encode.txt (45 байт, 989 просмотров)
 
Текущее время: 05:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru