По пути обучения встретился с данным заданием, не могу придумать принцип решения, может у кого возникнут идеи? Я дошел только до принципа полного реверса строки и последующего реверса каждого слова, но организовать его пока не получилось Задание: Ввести с клавиатуры строку, содержащую несколько слов, разделенных пробелом. Переставить в ней слова, поменяв местами первое слово с последним, второе с предпоследним и т.д. Вывести результаты на экран. Встречал решения подобных задачек, но так и не смог в них разобраться, так как еще не сильно шарю. Из уточнений: Должен быть организован ввод(и вывод) через прерывание, именно в командной строке, а не в самом коде, сам код желательно должен быть как можно проще, либо же помогите в последствии мне разобраться во всем.
вроде все просто. по ходу ввода запоминаем пробелы (смещения строк) и их количество. После окончания ввода (Enter?) - выводим слова по смещениям, в обратном порядке, начиная с последнего смещения.
Если нет подробностей по архитектуре, а сказано что то про прерывания(аппаратно-зависимое решение), то это не иначе как лаб работа в досе. Значит нужно открыть справочник по сервисам мсдос.
Тут или стек, где индексы начал слов заталкивать в процессе прямого обхода строки, либо что-то вроде псевдомашины Тьюринга сделать: (строка должна заканчиваться нулем или пробелом, состоять только из алфавитных символов. Впрочем, набор символов алфавита можно сделать относительно произвольным) Строка введена, лежит в буфере. Начальное состояние - 0. Состояния: 0. Мы в конце введенной строки: Если текущий символ не алфавитный - движемся по символу влево, записывая 0 в тот, откуда ушли, пока не встретим алфавитный. Если дошли до начала буфера - останов. Если дошли до алфавитного - оказывается в состоянии 1. 1. Движемся влево по символу, пока не встретим пробел или начало буфера. Если начало - останов. Если пробел - идем на символ вправо (стоим на начале слова), выводим побуквенно до пробела или 0, записывая пробелы в покидаемый символ, пока не кончатся алфавитные символы. Кончились - значит в состоянии 0.