Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Программа С

Автор: man4ester 23.4.2009, 21:21

Помогите пожалуйста решить задачу!

------------------
Есть текстовый файл неопределенной длины- стандартный ввод(stdin), нужно отсортировать его строки в лексикографическом порядке по возрастанию и вывести их на стандартный вывод(stdout).

Программа должна запускаться из командной строки и считывать строки текста пока пользователь не сигнализирует о конце файла(стандартного ввода)комбинацией Ctrl+D (unix)или Ctrl+Z (windows).
Необходимо использовать динамическую память для хранения считываемых строк, так как заранее не известно их количество.
Программа сортирует считанные строки любым алгоритмом сортировки и выводит их на stdout.
Лексикографическое сравнение строк:
"ABC"<"ABCD","ABC"="ABC","ABC"<"ABD"
Для его выполнения можно воспользоваться функцией strmcp().

Автор: Inspektor 23.4.2009, 21:28

А как сравнить "ABCD" и "ABD"? Или может strcmp, тогда первый вопрос отпадает. И что конкретно не получается, программу за вас тут не напишут.

Автор: man4ester 26.4.2009, 18:32

Цитата(Inspektor @ 23.4.2009, 21:28) *

А как сравнить "ABCD" и "ABD"? Или может strcmp, тогда первый вопрос отпадает. И что конкретно не получается, программу за вас тут не напишут.

жаль...

Автор: kaa 1.5.2009, 12:07

int strcmp(const char *s1, const char *s2); - Сравнивает две строки. Возвращает отрицательное значение, если s1<s2; нуль, если s1==s2; положительное значение, если s1>s2. Параметры - указатели на сравниваемые строки.
int strncmp(const char *s1, const char *s2, int maxlen); - Аналогично предыдущему, только сравниваются первые maxlen символов.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)