Страница 1 из 1

Задача на строки. Пожалуйста, помогите.

Добавлено: 18 апр 2011, 16:46
Lizi
Дан текст, состоящий из N (2<N<10) строк с максимальной длиной 80 символов. Необходимо вывести в обратном алфавитном порядке первые слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию. Для выделения слов из строки создать пользовательскую функцию.
Пожалуйста, объясните хотя бы как её нужно решать, ни фига не получается. Или киньте ссылку на какой-нибудь учебник по строкам в СИ++. Зарание спасибо.

Re: Задача на строки. Пожалуйста, помогите.

Добавлено: 19 апр 2011, 10:39
Romeo
Библиотека STL разрешена для использования?

Если да, то всё очень просто. Проходим по строкам в цикле используя например функцию strtok, которой в качестве делимитров переданы пробел, запятая и точка. Запихивает рассечённые слова в std::vector, затем сортируем его, передав в функцию std::sort дополнительным параметром функтор std::greater<std::string>.

Если STL не разрешена, то придётся повозиться с созданием массива указателей, каждый элемент которого будет памятью, выделенной динамически и содержащей строку. Затем придётся этот массив отсортировать по убыванию любым известным методом сортировки (выбора, обмена, вставки и т.д).