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

Посоветуйте, как лучше сделать - C++

Восстановить пароль Регистрация
 
olegpc
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 16
12.05.2010, 13:34     Посоветуйте, как лучше сделать #1
Для шифрования текста выбираем n и перестановку чисел от 1 до n. Текст разбиваем на группы по n и в каждой группе переставляем символы в порядке заданном перестановкой.

n=5 перестановка ->52413
АТТЧОРОТКЕРСИАСВАОК? ->ЧТО ТАКОЕ ТРАССИРОВКА?

Подскажите как реализовать это дело....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
12.05.2010, 14:06     Посоветуйте, как лучше сделать #2
Цитата Сообщение от olegpc Посмотреть сообщение
АТТЧОРОТКЕРСИАСВАОК? ->ЧТО ТАКОЕ ТРАССИРОВКА?
а куда делись пробелы?

Добавлено через 3 минуты
на каком языке нужно реализовать?
olegpc
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 16
12.05.2010, 14:14  [ТС]     Посоветуйте, как лучше сделать #3
Цитата Сообщение от Roma_F Посмотреть сообщение
а куда делись пробелы?

Добавлено через 3 минуты
на каком языке нужно реализовать?
Реализовать нужно на С++
Пробелы никуда не делись, это просто я так написал., должно быть так:
АТТЧОРОТКЕРСИАСВАОК? ->ЧТОТАКОЕТРАССИРОВКА?
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
12.05.2010, 14:32     Посоветуйте, как лучше сделать #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    string s_in = "CTOTAKOETRASSIROVKA?";
    string s_out = s_in;
    int n = 5;
    int np[] = {5, 2, 4, 1, 3};
    int len = s_in.length();
    int wlen = len - len % n;
    int count = wlen/n;
 
    for (int i = 0; i < count; i++)
    {
        for (int j = 0; j < n; j++)
        {
            s_out[i*n + j] = s_in[i*n + np[j]-1];
        }
    }
 
    cout << s_in << endl;
    cout << s_out << endl;
 
    return 0;
}
olegpc
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 16
12.05.2010, 15:46  [ТС]     Посоветуйте, как лучше сделать #5
Цитата Сообщение от Roma_F Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    string s_in = "CTOTAKOETRASSIROVKA?";
    string s_out = s_in;
    int n = 5;
    int np[] = {5, 2, 4, 1, 3};
    int len = s_in.length();
    int wlen = len - len % n;
    int count = wlen/n;
 
    for (int i = 0; i < count; i++)
    {
        for (int j = 0; j < n; j++)
        {
            s_out[i*n + j] = s_in[i*n + np[j]-1];
        }
    }
 
    cout << s_in << endl;
    cout << s_out << endl;
 
    return 0;
}
Спасибо большое)))

Добавлено через 1 час 1 минуту
У меня выходит 2 ошибки в строчках cout<<s_in<<endl;
cout<<s_out<<endl;
: error C2679: бинарный '<<': не найден оператор, принимающий правый операнд типа 'std::string' (или приемлемое преобразование отсутствует)

Можешь ещё объяснить в каких строчках что делается
mind66
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 41
12.05.2010, 15:49     Посоветуйте, как лучше сделать #6
подключите библиотеку
C++
1
2
3
#include <string>
или если не будет работать
#include "string.h"

по моему так
Yandex
Объявления
12.05.2010, 15:49     Посоветуйте, как лучше сделать
Ответ Создать тему
Опции темы

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