Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/asdil1/cw_texteditor

course work
https://github.com/asdil1/cw_texteditor

Last synced: about 1 month ago
JSON representation

course work

Awesome Lists containing this project

README

        

# Задание
Вывод программы должен быть произведен в стандартный поток вывода: stdout.
Ввод данных в программе в стандартный поток ввода: stdin.
В случае использования Makefile название исполняемого файла должно быть: cw.

Важно: первой строкой при запуске программы нужно выводить информацию о варианте курсовой работе и об авторе программы в строго определенном формате:
Course work for option , created by .
Где V – вариант курсовой и Имя и Фамилия, как указано в репозитории группы. Данное предложение должно быть строго первым предложением в выводе программы и является отдельной строкой (заканчивается знаком ‘\n’).
Например:
Course work for option 3.2, created by Ivan Ivanov.

Ввод данных:
После вывода информацию о варианте курсовой работе программа ожидает ввода пользователем числа – номера команды:
- 0 – вывод текста после первичной обязательной обработки (если предусмотрена заданием данного уровня сложности)
- 1 – вызов функции под номером 1 из списка задания
- 2 – вызов функции под номером 2 из списка задания
- 3 – вызов функции под номером 3 из списка задания
- 4 – вызов функции под номером 4 из списка задания
- 5 – вывод справки о функциях, которые реализует программа.
Программа не должна выводить никаких строк, пока пользователь не введет число.

В случае вызова справки (опция 5) текст на вход подаваться не должен, во всех остальных случаях после выбора опции должен быть считан текст.
Признаком конца текста считается два подряд идущих символа переноса строки ‘\n’. После каждой из функций нужно вывести результат работы программы и завершить программу.

В случае ошибки и невозможности выполнить функцию по какой-либо причине, нужно вывести строку: Error: <причина ошибки>

Каждое предложение должно выводиться в отдельной строке, пустых строк быть не должно. Текст представляет собой предложения, разделенные точкой. Предложения - набор слов, разделенные пробелом или запятой, слова - набор латинских букв и цифр. Длина текста и каждого предложения заранее не известна.

Программа должна сохранить этот текст в динамический массив строк и оперировать далее только с ним.

Программа должна найти и удалить все повторно встречающиеся предложения (сравнивать их следует посимвольно, но без учета регистра).

Программа должна выполнить одно из введенных пользователем действий и завершить работу:
- В каждом предложении удалить встречающиеся в нем цифры.
- Для каждого предложения вывести “Palindrome”, если оно является палиндромом, иначе “Nothing interesting”. При проверке на палиндром учитывать разделители не нужно, то есть строка “abcd eedcba” является палиндромом.
- Удалить все предложения у которых совпадают первый и последний символ без учета регистра.
- Отсортировать предложения по увеличению длины третьего слова, если третьего слова нет, то для такого предложения длина третьего слова равняется 3.

Все сортировки должны осуществляться с использованием функции стандартной библиотеки. Использование собственных функций, при наличии аналога среди функций стандартной библиотеки, запрещается.
Все подзадачи, ввод/вывод должны быть реализованы в виде отдельной функции.