Страница 1 из 1
Поиск и замена минимальных по длине слов
Добавлено: 17 май 2014, 13:31
Chiiif2
Подскажите пожалуйста,как можно заменить минимальные слова в строке введенным с клавиатуры словом,нужно сделать это циклами
Re: поиск минимальных слов
Добавлено: 19 май 2014, 16:09
Romeo
1. Создаём два буфера.
2. В первый считываем строку, второй будет использоваться для формирования результата.
3. Считываем слово, на которое будем заменять минимальные по длинне слова.
4. Пробегаем по первому буферу, вычисляя длину минимального слова (в цикле если не пробел, увеличиваем длину текущего слова, иначе проверяем минимальная ли она и запоминаем если так, затем сбрасываем переменную, хранящую длину текущего слова в ноль).
5. Теперь формируем результат. Здесь придётся немного повозьться. Очень подробно расписывать не буду, так как получится слишком громоздко. Общий смысл в том, чтобы иметь указатель на текущий обрабатываемый символ во входном буфере (буфер 1) и указатель на текущий обрабатываемый символ в выходном буфере (буфер 2). Нужно идти по входному буферу, забегая вперёд на слово и проверяя, равна ли его длина длине, вычисленной в пункте 4. Если равна, то переходим в режим замены и вписываем начиная с текущего указателя выходного буфера введённое слово для замены. Если не равна, то просто бежим до начала следующего слова посимвольно копируя элементы входного буфера в выходной и инкрементируя указатели текущих элементов.
6. Выводим буфер 2.
Re: поиск минимальных слов
Добавлено: 19 май 2014, 16:45
Chiiif2
Romeo,спасибо)