Срок выполнения:
Задание
- Постройте конечный автомат (схему переходов), который преобразует входной поток символов в выходной по вашему заданию (варианты ниже).
Автомат должен распознать во входном потоке все подходящие подпоследовательности. Напишите программу на Си++, которая работает по созданному автомату.
Символы читать со стандартного входа (std::cin), писать на стандартный выход (std::cout).
Использовать массивы нельзя.
На одной итерации можно выводить несколько символов (только если это действительно необходимо).
Символы в кодовых таблицах могут располагаться произвольно, поэтому для работы с диапазонами символов нужно по возможности использовать функции is... и toupper, tolower (http://en.cppreference.com/w/cpp/string/byte). Там, где эти функции не помогают, нужно проверять все символы диапазона явно.
Примеры
Копирование: char01-copy.cpp
Удаление пробелов: char02-del-space.cpp
Удаление пробелов, табуляций, концов строк: char03-del-space-tab-nl.cpp
Удаление всех пробельных символов: char04-del-whitespace.cpp
Замена пробельных цепочек на один пробел: char05.pdf char05-compress-ws.cpp
Автоматы
Схема автомата для копирования (программа выше): 01-copy.pdf
Автомат удаления пробелов (программа выше): 02-remove-space.pdf
Автомат удаления пробелов и табуляций (программа выше): 03-remove-space-tab.pdf вариации программы: 03-1.cpp 03-3.cpp 03-4.cpp
Вывод слов, ограниченных пробелами и начинающихся с p
: p-words.pdf программы: p-words-1.cpp p-words-2.cpp
Варианты
Расчёт номера своего варианта см. на странице Успеваемость студентов.