Guest User

Untitled

a guest
May 27th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cctype>
  4.  
  5. using namespace std;
  6.  
  7. int const LENGTH_STR = 15;
  8.  
  9. //функция для кодирования
  10. char *encode(char *str, int key){
  11. //бежим в цикле по всем элементам массива
  12. for(int i = 0; i < LENGTH_STR; i++){
  13. //если в ячейке символ, то изменяем его
  14. if(isalpha(str[i])){
  15. //если при складывании символов мы уходим за пределы алфавита, то сдвигаесмся на 26 символов назад,
  16. //иначе просто сдвиг вправо на key раз
  17. if(str[i] + key > 'z')
  18. str[i] += key - 26;
  19. else
  20. str[i] += key;
  21. cout << str[i];
  22. }
  23. }
  24. cout << endl;
  25. return str;
  26. }
  27.  
  28. char *decode(char *str, int key){
  29. for(int i = 0; i < LENGTH_STR; i++){
  30. if(isalpha(str[i])){
  31. if(str[i] - key < 'a'){
  32. str[i] = (str[i] - key + 26);
  33.  
  34. } else
  35. str[i] -= key;
  36. cout << str[i];
  37. }
  38. }
  39. return str;
  40. }
  41.  
  42. int main()
  43. {
  44. setlocale(LC_ALL, "Russian");
  45. char *str = new char[LENGTH_STR]; // массив для слова типа char. Масссив динамический
  46. int key = 0;
  47. cout << "Введите слово(len = 15): ";
  48. cin.getline(str, LENGTH_STR); //записываем слово в массив
  49. cout << "Введите ключ: ";
  50. cin >> key; //получаем сдвиг
  51. char *decode_str = encode(str, key); // кодируем
  52. decode(decode_str, key); //раскодируем
  53. //cout << "Закодированное слово " << decode_str << "со смещением вправо на " << key << endl;
  54. //cout << "Раскодируем, получим: " << decode(decode_str, key);
  55. cout << endl;
  56. return 0;
  57. }
Add Comment
Please, Sign In to add comment