Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <fstream>
- #include <string>
- #include <algorithm>
- #include <iostream>
- using namespace std;
- //Объявляем массив символов русского и английского алфавита
- string alpha = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя,-.";
- int code(char str)
- {
- for (int i = 0; i < 33; i++) {
- if (str == alpha[i])
- return i;
- }
- }
- int main() {
- system("chcp 1251");
- system("cls");
- setlocale(LC_ALL, "Russian");
- ifstream start("start.txt");
- ofstream output("out.txt");
- char alphaB[20][2];
- char bufer[50];
- string message;
- string key;
- string decode;
- getline(start, key);
- getline(start, message);
- string keyb = key;
- cout << endl;
- cout << message.length() << ' ' << key.length();
- int s;
- if (message.length() % key.length() > 0) {
- s = (message.length() / key.length()) + 1;
- }
- else
- s = message.length() / key.length();
- int o;
- cout << s << endl;
- char **mat;
- mat = new char*[key.length()];
- for (int i = 0; i < s; i++)
- mat[i] = new char[key.length()];
- char **matc;
- matc = new char*[key.length()];
- for (int i = 0; i <= s; i++)
- matc[i] = new char[key.length()];
- for (int i=0; i<s;++i)
- for (int j = 0; j < key.length(); j++) {
- if (message.empty()) {
- mat[i][j] = '|';
- }
- else {
- char buf = message[0];
- message.erase(0, 1);
- mat[i][j] = buf;
- }
- }
- for (int j = 0; j < key.length(); j++)
- cout << key[j] << ' ';
- cout << endl;
- for (int i = 0; i < s; ++i) {
- {
- for (int j = 0; j < key.length(); ++j)
- cout << mat[i][j] << ' ';
- cout << endl;
- }
- }
- int ukaz = 0;
- for (int i = 0; i < 33; ++i){
- for (int j = 0; j < key.length(); ++j) {
- if (alpha[i] == key[j])
- {
- matc[0][ukaz%key.length()] = alpha[i];
- for (int ic = 1; ic <= s; ++ic) {
- matc[ic][ukaz%key.length()] = mat[ic-1][j];
- }
- ukaz++;
- }
- }
- }
- cout << endl;
- for (int i = 0; i <= s; ++i) {
- {
- for (int j = 0; j < key.length(); ++j)
- cout << matc[i][j] << ' ';
- cout << endl;
- }
- }
- cout << endl;
- for (int j = 0; j < key.length(); ++j) {
- for (int t=0;t<key.length();++t)
- if (key[j] == matc[0][t]) { //тут мы нашли совпадение текущей буквы ключа и 0 символа столбца
- for (int i = 0; i <= s; ++i) {
- char buf;
- buf = matc[i][j];
- matc[i][j] = matc[i][t];
- matc[i][t] = buf;
- }
- }
- }
- cout << endl;
- for (int i = 0; i <= s; ++i) {
- {
- for (int j = 0; j < key.length(); ++j)
- cout << matc[i][j] << ' ';
- cout << endl;
- }
- }
- cout << endl;
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment