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

Шифрование «методом бутерброда» - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
neo7777777
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 16
13.11.2011, 12:10     Шифрование «методом бутерброда» #1
Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв. Затем все буквы записываются в шифр в порядке своих номеров. В конец зашифрованного слова добавляется знак «диез» (#), который нельзя использовать в сообщениях.
Например, слово «sandwich» зашифруется в «shacnidw#».

К сожалению, программист «Super-Secret-no», написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.

Формат входных данных (input.txt)
Вводится слово, зашифрованное методом бутерброда. Длина слова не превышает 100 букв.
Формат результата (output.txt)
Выведите расшифрованное слово.

Помогите пожалуйста решить программу. Буду благодарна всем кто откликнется. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 12:10     Шифрование «методом бутерброда»
Посмотрите здесь:

C++ Шифрование методом перестановки
Шифрование методом перестановки C++
Шифрование методом Цезаря C++
Шифрование методом Вижинера C++
C++ Шифрование Методом Виженера На C++
C++ Шифрование методом цезаря
Шифрование методом перестановки на C++ C++
C++ Шифрование методом Цезаря

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
13.11.2011, 16:06     Шифрование «методом бутерброда» #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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <string.h>
 
#define BUF_SIZE  100
 
char *encode(char *dst, char *src);
char *decode(char *dst, char *src);
char *rmnl(char *s); 
 
int main()
{
    char in[BUF_SIZE], out[BUF_SIZE + 1];
    int c;
    
    while (printf("\nenter a line:\n") > 0
        && fgets(in, BUF_SIZE, stdin) && *in != '\n') {
        rmnl(in);
        printf("e - encode\n" "d - decode\n" "action: ");
        if ((c = getchar()) == 'e')
            encode(out, in);
        else if (c == 'd')
            decode(out, in);
        else
            break;
        printf("\n%s\n", out);
        getchar();
    }
    return 0;
}
 
char *encode(char *dst, char *src)
{
    char *beg = dst;
    char *p = src;
    char *t = src + strlen(src) - 1;
 
    for ( ; p <= t; p++, t--) {
        *dst++ = *p;
        if (p < t)
            *dst++ = *t;
    }
    *dst++ = '#';
    *dst   = '\0';
    return beg;
}
 
char *decode(char *dst, char *src)
{
    char *p = dst;
    char *t = dst + strlen(src) - 1;
 
    *t-- = '\0';  /* skip a '#' */
    while (*src && *src != '#') {
        *p++ = *src++;
        if (*src && *src != '#')
            *t-- = *src++;
    }
    return dst;
}
 
/* rmnl: remove a newline */
char *rmnl(char *s)
{
    char *p = s + strlen(s) - 1;
 
    if (*p == '\n')
        *p = '\0';
    return s;
}
asem95
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 11
15.04.2013, 13:21     Шифрование «методом бутерброда» #3
Net_Wanderer, а как поменять в коде то,чтобы зашифрованное слово выходило без решетки в конце??
Yandex
Объявления
15.04.2013, 13:21     Шифрование «методом бутерброда»
Ответ Создать тему
Опции темы

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