Skip to content

Project of Caesar and XOR encoder/decoder for strings programs . Homework for RPO and PZR (MIREA).

Notifications You must be signed in to change notification settings

Adaypon/Encoder-Decoder

Repository files navigation

Encoder-Decoder

Домашняя работа, которую необходимо реализовать для допуска к зачетам по РПО и ПЗР (одна из работ, которую обязательно нужно сделать в семестре).


В отдельных модулях необходимо реализовать следующие функции для работы со строками:

  • перевода строки в верхний и нижний регистр (toUpper/toLower);
  • удаления пробелов из начала и из конца строки (strip);
  • удаления всех пробелов из строки;
  • фильтрации строки (удаление всех символов, не являющихся буквой, цифрой или пробелом);
  • проверки, является ли строка числом;
  • проверки, состоит ли строка только из букв (проверяем только английские);
  • шифрования строки алгоритмом Цезаря;
  • шифрования и дешифрования строки алгоритмом XOR. Для каждой функции (кроме функций для проверок) необходимо реализовать изменяющую и не изменяющую версии (с соответствующими префиксами mutable/immutable в названиях функций).

Модули будут использоваться в программе-энкодере и программе-декодере (две разных программы!). Имена исполняемых файлов — encoder и decoder.

В функции main Энкодера необходимо зашифровать строку, введенную пользователем. Результат шифрования вывести на экран.

Перед шифрованием необходимо удалить лишние пробелы с концов строки и привести строку к нижнему регистру.

В функции main Декодера необходимо дешифровать строку, введенную пользователем. Результат декодирования вывести на экран.


Способ кодирования/декодирования и данные могут подаваться через аргументы функции main.

Способы передачи данных:

  1. ./encoder --caesar text offset — кодирование по Цезарю;
  2. ./encoder --xor text password — кодирование по XOR;
  3. ./encoder — способ кодирования и необходимые данные вводятся с помощью scanf. Для декодера передаются данные, с которыми шифровалась исходная строка! Например:
> ./decoder --caesar bcd 1
> Decoded string: abc

Если аргументами функции main переданы некорректные данные, то следует вывести на экран текст соответствующей ошибки и досрочно завершить процесс кодирования.


Провести файловую декомпозицию.

Написать два мейкфайла для каждой программы:

  • в котором модули собираются как статические библиотеки;
  • в котором модули собираются как динамические библиотеки.

About

Project of Caesar and XOR encoder/decoder for strings programs . Homework for RPO and PZR (MIREA).

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages