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

[C] Задача с использованием строк и символов

Добавлено: 17 ноя 2009, 17:17
m9yt
Здравствуйте!Мне задали в универе вот такую задачу:
"Отсортировать слова в строке по алфавиту"
Думал над ней долго и не могу понять следущее:
Как из строки запомнить в переменные все слова, ведь слов всегда разное количество?
Как потом сравнить эти слова по буквам, если я их разделил, а затем переставить в нужном порядке?
Нужно учесть то, что делать это надо в стиле С,а не С++, т.е. string.h нельзя использовать.

Re: [C] Задача с использованием строк и символов

Добавлено: 18 ноя 2009, 15:18
Romeo
Первое, что приходит в голову:

1. Подсчитать количество слов в строке.
2. Создать динамически массив, размером равным количеству слов и поместить в каждый его элемент индекс первой буквы каждого слова.
3. Создать динамически ещё одну такую же строку, как наша исходная строка.
4. Далее используя поиск минимального слова в цикле копировать слово во вторую строку, затем очищать соответствующий элемент массива индексов (например записав туда -1).

Как-то так.

Однозначно есть более быстрый алгоритм. Повторяю, это первое, что пришло в голову.

Re: [C] Задача с использованием строк и символов

Добавлено: 18 ноя 2009, 15:53
m9yt
Всё.Училка пояснила сегодня!
Задачу нужно сделать 2 способами:стиль С и С++
Т.е. string.h использовать можно!Но в С решаем серез char, а в С++ через string(различные методы)

Re: [C] Задача с использованием строк и символов

Добавлено: 18 ноя 2009, 19:47
Decoder
На С++ это вообще делается элементарно. Чтение строки по словам, запись в динамический массив, сортировка - это всё имеется в стандартной библиотеке С++.
На обычном Си конечно придётся повозиться.
Если возникнут сложности, обращайся на decoder@hotbox.ru