1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Шифрование текста

Тема в разделе "Общие вопросы по С и С++", создана пользователем deathsurgut, 20 сен 2007.

Статус темы:
Закрыта.
  1. deathsurgut

    deathsurgut Гость

    Люди помогите вот код приблежённо тут только нету ввода данных!
    Как организовать тут водд данных??

    Код (Text):
    #include <iostream>
    #include <stdio.h>
    const int n = 10;
    typedef char sType[n + 1];
    typedef sType matrix[n];
    const matrix mask = {
    "xxxxx.....",
    "xxxxx.....",
    "xxxxx.....",
    "xxxxx.....",
    "xxxxx.....",
    "..........",
    "..........",
    "..........",
    "..........",
    ".........."
    };
    const char *st =
    "1234567890123456789012345678901234567890123456789012345678901234567890123456
    78901234567890123456789";
    matrix encoded, masked;
    void T(matrix &res) {
    matrix mx;
    memcpy(&mx, &res, sizeof(matrix));
    for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
    res[j][n - i - 1] = mx[i][j];
    }
    void EncodeText(const char *s,
    const matrix &mask, matrix &mx) {
    for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
    strcat(mx[i], " \0");
    matrix masked;
    memcpy(&masked, &mask, sizeof(matrix));
    for(int count = 0; count < strlen(s); ) {
    for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
    if(masked[i][j] == 'x') mx[i][j] = s[count++];
    T(masked);
    }
    }
    char *DecodeText(const matrix &mask, const matrix &encoded) {
    matrix masked;
    memcpy(&masked, &mask, sizeof(matrix));
    int count = 0;
    char s[255] = "";
    while(strlen(s) < n*n) {
    for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++) {
    char st[3] = " \0";
    if(masked[i][j] == 'x') {
    st[0] = encoded[i][j];
    strcat(s, st);
    }
    }
    T(masked);
    }
    return strdup(s);
    }
    int main()
    {
    EncodeText(st, mask, encoded);
    printf ("encoded text: \n");
    for(int i = 0; i < n; i++)
    printf("%s\n", encoded[i]);
    printf("%s\n", DecodeText(mask, encoded));
    return 0;
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей