|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
Запись строк в файл18.05.2010, 22:26. Показов 4339. Ответов 21
Метки нет (Все метки)
Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины (в том же порядке).
И вторая задача такая же, только строки наибольшей длины. Вопрос следующий, как реализовать поиск наименьшей или наибольшей строки при работе с файлом? Действует ли здесь функция strlen из библиотеки string.h?? Если можно, то приведите небольшой примерчик. Заранее спасибо.
0
|
|
| 18.05.2010, 22:26 | |
|
Ответы с готовыми решениями:
21
Запись строк в файл Запись строк в файл Объединение строк и запись в файл |
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 18.05.2010, 23:40 | |
|
Ну алгоритмов может быть несколько. Выигрываем в памяти- проиграем в лаконичности кода. Выграем в лаконичности- проиграем в быстроте... И так далее. Одно за другое цепляется
Можно так: Считываешь файл в строку ПРобегаешься по ней циклом. Учти, что коль скоро он текстовый, то конец строки это либо перевод каретки, либо переход на новую строку. То есть символ 0X0d или 0X0A Ну то есть строка будет представлять из себя нечто такое d0 e0 f1 f1 f2 f0 e5 eb ff f2 fc 0d 0a e2 f1 e5 f5 0d 0a ea 0d 0a f7 b8 f0 f2 ee e2 ee e9 0d 0a ec e0 f2 e5 f0 e8 Обрати внимание, в конце строки необязатено перевод на другую строку или возврат каретки ...Так, а теперь пробегайся по строке циклом и ищи самую короткую последовательность байтов, куда бы не входили 0d или 0a В этом примере длина такой последовательности равна 1 (символ ea) Теперь ищи в этой строке ВСЕ ПОСЛЕДОВАТЕЛЬНОСТИ длиной 1 и перегоняй их в новую строку. Не забывай после каждой ставить 0d 0a Ну а потом новую строку перегоняй в текстовый файл. Так ты выполнишь первое задание.
1
|
|
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
| 18.05.2010, 23:55 [ТС] | |
|
Как сложно... я никогда не уделял внимания работе с обозначениями букв и цифр в системе. То есть мне нужно будет превратить строку в эти символы...или как? У меня следующая похожая задача, на то, как вы разъясняете, так что мне это будет нужно. Пожалуйста, покажите серединку кода. Как считать строку в файл я знаю, а вот с переводом-проблемка. Большое спасибо!
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 18.05.2010, 23:59 | ||||||
![]() Добавлено через 30 минут Всё-таки поправил, а то не комильфо как-то...
1
|
||||||
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
| 19.05.2010, 00:06 [ТС] | |
|
Спасибище большое!! теперь в этом бы ещё разобратся...и что именить для превращения задачи во вторую...но это я завтра подумкаю) Я так понимаю - это структура, где мы ещё помимо основной функции создаём дополнительные на удаление строки. А что такое strdup(buf)?
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 19.05.2010, 00:11 | ||
|
1
|
||
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
| 19.05.2010, 07:27 [ТС] | |
|
Спасибо! А подскажите пожалуйста, если так:
Дан строковый файл. Создать новый строковый файл, в котором строки из исходного файла располагались бы в лексикографическом порядке, то есть по возрастанию кодов их символов, начиная с первого символа. то как следует изменить код?? P/S/ это то о чём я писал ранее. Добавлено через 1 минуту Д и ещё. Где можно скачать себе такой справочник, как тот, по ссылке выше?
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||
| 19.05.2010, 08:50 | |||
1
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
| 19.05.2010, 09:53 | |||||||||||
|
ТС,
1) умеешь сортировать строки? 2) Задача: дана строка
Сможешь в этой строке все символы "o" заменить на обой другой, к примеру на d, чтобы получилось:
3) умеешь работать с динамическим массивом?
1
|
|||||||||||
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
||
| 19.05.2010, 17:31 [ТС] | ||
|
Прочитать это наверное вот так:
if ( ( str->buf = strdup(buf) ) == NULL ){ free(str); return NULL;[/quote] Как вывести я знаю, а сортировку не знаю...я вообще болею на эти строки...( Кстати, то ли я кривой, то ли руки такие, но в поиске решения такой задачи я не нашёл... Добавлено через 3 часа 8 минут Блин, сегодня пару просидел, думал что нужно изменить в первой задаче, чтобы сделать максимум-поиск. Так и не понял. Не могли бы вы мне объяснить по-подробнее?
0
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 19.05.2010, 17:51 | ||
1
|
||
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|||||||||||
| 19.05.2010, 17:54 [ТС] | |||||||||||
|
Наверное эта:
0
|
|||||||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||||||||
| 19.05.2010, 17:59 | ||||||||||||
![]()
1
|
||||||||||||
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
||
| 19.05.2010, 18:55 [ТС] | ||
![]() Добавлено через 42 минуты Так-с, тут вроде бы разобрался, остался лексиграфический порядок. Подскажите как сделать?? я не знаю как делать сортировку по коду символов. Дайте какую-нить подсказочку.
0
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 19.05.2010, 19:13 | |
|
0
|
|
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
| 19.05.2010, 19:23 [ТС] | |
|
Блин...а как оно работает? в справочнике прочитал про эту функцию, но что-то не могу догнать...В общем я так понял из прошлых задач нам нужно удалить функцию удаления строк, и заменить функцию поиска длиннейшей (кратчайшей) строки, на создание строки в лексиграфическом порядке. Надеюсь, что всё верно...Так вот, как это сделать? всмысле создание лексиграфической строки, ведь функция, которую вы мне предложили нужна только в основной функции?
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 19.05.2010, 21:11 | |
|
Я тоже запутываюсь всё больше и больше.
Тебе нужно сортировать строки. Берёшь какой-нибудь простой алгоритм сортировки ЧИСЕЛ. Елки-палки, можешь сам придумать какой-нибудь простой примитивный алгоритм, разбираешься. РАЗБИРАЕШЬСЯ. Потом пишешь какую-нибудь маленькую прожку, которая бы сортировала массив чисел. Потом пытаешься вместо массива чисел сортировать МАССИВ УКАЗАТЕЛЕЙ НА СТРОКИ. Всё. Если не получается- даёшь сюда свою рабочую прожку, которая сортировала бы массив чисел. Подскажем, как переделать её под сортировку массива указателей на строки. Понял? Многого е обещаю, но строки сортировать будешь уметь. Если понял, тогда внимание: в любом алгоритме сортировки чисел числа СРАВНИВАЮТСЯ МЕЖДУ СОБОЙ. Если ты будешь сортировать строки, то строки тоже должны будешь сравнивать между собой. Для сравнения строк и существует функция strcmp Если ты и это понял, если нашёл всё-таки простое и ясное объяснение этой функции в какой-нибудь книге (у тебя ведь есть книги по С, не правда ли?) тогда должен осилить и это: Опять внимание: в алгоритме сортировки строк сравниваются между собой СТРОКИ, но сортируются УКАЗАТЕЛИ НА НИХ. Последнее сразу понять необязательно, придёт с опытом. В путь!
1
|
|
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
||||||
| 19.05.2010, 22:51 [ТС] | ||||||
|
Хм...я совершенно не понимаю как сортировать строки. Да, вы правы, книги у меня есть, около 200 штук, вот только читать некогда...есть время-читаю. Учёба очень занудная вещь...И за всем не успеваешь. А если использовать функцию:
qsort(имя массива, количество элементов, sizeof(тип), comp) Или такое применить невозможно? Ну а самую примитивную сортировку?
0
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 19.05.2010, 23:16 | |
|
На счёт qsort не скажу, не использовал.
...МНе вообще повезло, я начал знакомство с сортировкой не с использования функций, а с разбора их исходников. Второй раз советую тебе так же сделать. Книги есть. Или так: ты для чего этот код дал? Ты с ним разобрался?
1
|
|
|
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
|
|
| 19.05.2010, 23:35 [ТС] | |
|
Код? по пузырьку всмысле? его я знаю. подробно препод рассказала. Это наверное единственное что она рассказала подробно, если память не подводит. А есть книги по работе с кодом символов? никогда не встречался особо, поэтому даже понятия не имею, как и что сортировать.
0
|
|
| 19.05.2010, 23:35 | |
|
Помогаю со студенческими работами здесь
20
Запись в файл, состоящий из нескольких строк
Запись в файл и вывод из файла строк Запись в текстовый файл адресов вместо строк Чтение строк из файла, объединение и запись в другой файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|