...
- Постройте конечный автомат (схему переходов), который преобразует входной поток символов в выходной по вашему заданию (варианты ниже).
Автомат должен распознать во входном потоке все подходящие подпоследовательности; действия над ними означают следующее:
"удалить" – входной поток копируется на выход целиком, кроме распознанных подпоследовательностей;
"вывести" – на выход попадают только распознанные подпоследовательности, построчно, то есть после каждой нужно вывести символ перехода на новую строку;
"заменить" – входной поток копируется на выход целиком, но вместо распознанных подпоследовательностей выводятся указанные по заданию. Напишите программу на Си++, которая работает по созданному автомату.
Символы читать со стандартного входа (std::cin), писать на стандартный выход (std::cout).
Использовать массивы нельзя.
На одной итерации можно выводить несколько символов (только если это действительно необходимо).
Символы в кодовых таблицах могут располагаться произвольно, поэтому для работы с диапазонами символов нужно по возможности использовать функции is... и toupper, tolower. Там, где эти функции не помогают, нужно проверять все символы диапазона явно.
Примеры
Копирование: 01.zip
Удаление пробелов: 02.zip
Удаление пробелов и табуляций: 03.zip
Удаление пробельных символов: 03-4.cpp
Замена пробельных цепочек на один пробел: 04.zip
Вывод слов, начинающихся с p
: p.zip
Проверка сбалансированности скобок: par.cpp
Варианты
Расчёт номера своего варианта см. на странице Успеваемость студентов.
...