XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
[c++] как найти слово в отдельном файле?
дан отдельный txt файл, в котором большой текст. надо найти одно слово и поставить \n перед и после того самого слова.

как?
Старый 14.03.2011, 06:10
lentinant
Скучно
offline
Опыт: 42,216
Активность:
У тебя слово длины N. Создаешь новый стринг, запихиваешь в него N символов с текста, начиная с некой позиции P (изначально P=0), сравниваешь с искомым словом, если совпадает - ставишь \n на позиции P и P+N, если не совпадает - P=P+1 и повторяешь. Командами помочь не могу, ибо с файлами работал токо в Делфи
lentinant добавил:
а искомое слово в тексте токо одно?
Старый 14.03.2011, 06:51
Rvn
Skillful level designer
offline
Опыт: 15,907
Активность:
По пробелами и знакам препинания искать слова легче и быстрее. Имхо.
Старый 14.03.2011, 09:34
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от bee
[c++] как найти слово в отдельном файле?

дан отдельный txt файл, в котором большой текст. надо найти одно слово и поставить \n перед и после того самого слова.

как?


Текст == массив чаров, получаешь длинну, запускаешь цикл, ищешь в цикле 1 букву искомого слова,если есть совпадение проверяешь, совпадает ли 2-я буква слова с найденым и тд. При нахождении, сдвигаешь массив , начиная с найденого слова, и всписываешь в получившиеся пустые ячейки \n.
Старый 14.03.2011, 12:03
spellwerk

offline
Опыт: 4,869
Активность:
Старый 14.03.2011, 14:51
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Цитата:
Сообщение от lentinant
У тебя слово длины N. Создаешь новый стринг, запихиваешь в него N символов с текста, начиная с некой позиции P (изначально P=0), сравниваешь с искомым словом, если совпадает - ставишь \n на позиции P и P+N, если не совпадает - P=P+1 и повторяешь. Командами помочь не могу, ибо с файлами работал токо в Делфи

__lentinant добавил:__
а искомое слово в тексте токо одно?

то есть циклом занести все буквы в массив, и если буква совпадает, то i++, если i==n тогда done? иначе i=0.
ну это же через чур не оптимально? если я правильно понел. а что если текст размером с реферат или какую-нибудь книгу? у меня текст не очень большой. тогда вопрос: каким образом возможно отследить конец текста? когда c == null? или ""? пробел вроде " " or "/0" насколько я помню.

bee добавил:
ответьте плиз.
Старый 15.03.2011, 22:33
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:35.