![]() |
|
Модераторы: bsa |
![]()
|
|
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Вот значит что мне нужно сделать ... в файле записан текст .... нало ввести искомое слово с клавиатуры и найти его в этом файле .... я могу его найти без проблем .. ну вот в чем проблема нАдовывести предложение в котором это слово встречается .... если это была строка то по указателю без проблем ... а в файле как мне контролировать начало и конец предложения .... подскажите кто знает ... заранее спасибо!
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Считываешь весь файл как строку, находишь позицию слова. Дальше ищешь ближайшую точку слева и справа. Вот это и будут границы предложения, например. |
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
Немог бы подсказать функцию считывания файла в строку .......... этож какого размера получится строка ...........
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
такого же, как и файл. одной такой функции нет. Можешь поступить по-другому: считываешь файл по-символьно, как только встретишь точку, ищешь подстроку в строке, если нет, обнуляешь буфер и считываешь дальше, если да - то в буфере как раз окажется предложение. |
|||
|
||||
| kuller |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
к примеру
можно в С делать такую большую строку???? |
||||
|
|||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
размер ограничен размерами стека. например Visual C++ 8 по умолчанию выделяет под стек 1Мб, вот и думай, большая у тебя строка или нет если сомневаешься, то используй динамические массивы:
Добавлено через 49 секунд блин если Си, то malloc/calloc/realloc/free |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
На си можно еще воспользоваться fscanf(), чтобы не выделять такие объемы памяти под весь файл. Она же умеет читать пословно ("%s").
|
|||
|
||||
| kuller |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 15.11.2007 Репутация: нет Всего: нет |
правильно она читает то пословно ..... ну нашел я то слово которое мне надо ..... а как то вывести предложение в котором оно содержится???? вот тут то и вся проблема .... я этой функцией fscanf() и пользуюсь)))
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
kuller, вот именно, делаешь так, как сказал JackYF, но пользуешься уже не fscanf(), sscanf()
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |