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

  • Автор темы deathsurgut
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

deathsurgut

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

Код:
#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;
}
 
Статус
Закрыто для дальнейших ответов.