ademosh

4 задание, введение в крипту

Jan 29th, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include "pch.h"
  2. #include <fstream>
  3. #include <string>
  4. #include <algorithm>
  5. #include <iostream>
  6.  
  7.  
  8.  
  9. using namespace std;
  10. //Объявляем массив символов русского и английского алфавита
  11. string alpha = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
  12. int code(char str)
  13. {
  14. for (int i = 0; i < 33; i++) {
  15. if (str == alpha[i])
  16. return i;
  17. }
  18. }
  19.  
  20. int main() {
  21. system("chcp 1251");
  22. system("cls");
  23. setlocale(LC_ALL, "Russian");
  24. ifstream start("start.txt");
  25. ofstream output("out.txt");
  26. char alphaB[30][2] = { ' ' };
  27. string message;
  28. string key;
  29. string keybuf;
  30. getline(start, key);
  31. getline(start, message);
  32. cout << endl;
  33. int o;
  34. int ukazi = 0;
  35. int ukazj = 0;
  36. if (key.length() > 16) {
  37. while (key.length() > 0)
  38. {
  39. char buf = key[0];
  40. key.erase(0, 1);
  41. int check = 0;
  42. for (int i = 0; i < ukazi; ++i) {
  43. if (buf == alphaB[i][0]) check = 1;
  44. }
  45. if (check == 0) {
  46. alpha.erase(code(buf), 1);
  47. keybuf += buf;
  48. ukazi += 1;
  49. }
  50. }
  51. keybuf += ' ';
  52. int iter = 0;
  53. while (!keybuf.empty()) {
  54. char buff = keybuf[0];
  55. char bufs;
  56. if (alpha[0] != ',') {
  57. bufs = alpha[0];
  58. alpha.erase(0, 1);
  59. }
  60. else if (keybuf[1] != ' ') {
  61. bufs = keybuf[1];
  62. keybuf.erase(0, 1);
  63. }
  64. else {
  65. bufs = buff;
  66. keybuf.erase(0, 1);
  67. }
  68. keybuf.erase(0, 1);
  69. alphaB[iter][0] = buff;
  70. alphaB[iter][1] = bufs;
  71. iter++;
  72. }
  73. }
  74. else {
  75. for (int i = 0; i < key.length(); ++i)
  76. {
  77. for (int j = 0; j < alpha.length(); ++j) {
  78. if (key[i] == alpha[j]) alpha.erase(j, 1);
  79. }
  80. }
  81. while (alpha.length() > 0) {
  82. cout << endl << alpha << " " << key ;
  83. char bufk;
  84. if (key.length() >= 1) {
  85. bufk = key[0];
  86. key.erase(0, 1);
  87. } else if (alpha.length() == 1) {
  88. alphaB[ukazi][0] = alpha[0];
  89. alphaB[ukazi][1] = alpha[0];
  90. alpha.erase(0, 1);
  91. ukazi++;
  92. cout << "1 left";
  93. break;
  94. }else {
  95. bufk = alpha[0];
  96. alpha.erase(0, 1);
  97. }
  98. cout << endl << alpha << " " << key << endl;
  99. int check = 0;
  100. for (int i = 0; i < ukazi; ++i)
  101. {
  102. if (bufk == alphaB[i][1]) check = 1;
  103. }
  104. if (check == 0)
  105. {
  106. alphaB[ukazi][1] = bufk;
  107. alphaB[ukazi][0] = alpha[0];
  108. alpha.erase(0, 1);
  109. ukazi++;
  110. }
  111. }
  112. }
  113. cout << "sfef "<<alpha << endl;
  114. for (int i = 0; i < ukazi; ++i) {
  115. cout << alphaB[i][0] << ' ';
  116. }
  117. cout << endl;
  118. for (int i = 0; i < ukazi; ++i) {
  119. cout << alphaB[i][1] << ' ';
  120. }
  121. cout << endl;
  122. while (!message.empty()) {
  123. char buf;
  124. buf = message[0];
  125. message.erase(0, 1);
  126. for (int i = 0; i < ukazi; ++i) {
  127. if (buf == alphaB[i][0]) {
  128. cout << alphaB[i][1];
  129. output << alphaB[i][1];
  130. break;
  131. }
  132. else if (buf == alphaB[i][1]) {
  133. cout << alphaB[i][0];
  134. output << alphaB[i][0];
  135. break;
  136. }
  137. if (buf == ' ') {
  138. cout << ' ';
  139. output << ' ';
  140. break;
  141. }
  142. }
  143.  
  144. }
  145. cout << endl;
  146. system("pause");
  147. return 0;
  148. }
Add Comment
Please, Sign In to add comment