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

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
m9yt
Сообщения: 2
Зарегистрирован: 17 ноя 2009, 17:15

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

Первое, что приходит в голову:

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

Как-то так.

Однозначно есть более быстрый алгоритм. Повторяю, это первое, что пришло в голову.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
m9yt
Сообщения: 2
Зарегистрирован: 17 ноя 2009, 17:15

Всё.Училка пояснила сегодня!
Задачу нужно сделать 2 способами:стиль С и С++
Т.е. string.h использовать можно!Но в С решаем серез char, а в С++ через string(различные методы)
Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

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