Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cctype>
- using namespace std;
- int const LENGTH_STR = 15;
- //функция для кодирования
- char *encode(char *str, int key){
- //бежим в цикле по всем элементам массива
- for(int i = 0; i < LENGTH_STR; i++){
- //если в ячейке символ, то изменяем его
- if(isalpha(str[i])){
- //если при складывании символов мы уходим за пределы алфавита, то сдвигаесмся на 26 символов назад,
- //иначе просто сдвиг вправо на key раз
- if(str[i] + key > 'z')
- str[i] += key - 26;
- else
- str[i] += key;
- cout << str[i];
- }
- }
- cout << endl;
- return str;
- }
- char *decode(char *str, int key){
- for(int i = 0; i < LENGTH_STR; i++){
- if(isalpha(str[i])){
- if(str[i] - key < 'a'){
- str[i] = (str[i] - key + 26);
- } else
- str[i] -= key;
- cout << str[i];
- }
- }
- return str;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char *str = new char[LENGTH_STR]; // массив для слова типа char. Масссив динамический
- int key = 0;
- cout << "Введите слово(len = 15): ";
- cin.getline(str, LENGTH_STR); //записываем слово в массив
- cout << "Введите ключ: ";
- cin >> key; //получаем сдвиг
- char *decode_str = encode(str, key); // кодируем
- decode(decode_str, key); //раскодируем
- //cout << "Закодированное слово " << decode_str << "со смещением вправо на " << key << endl;
- //cout << "Раскодируем, получим: " << decode(decode_str, key);
- cout << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment