Страница 1 из 3
C++.Помогите,пожалуйста.
Добавлено: 14 янв 2008, 19:46
Стасек
Перебрал 2-3 алгоритма поиска,и оба были забракованы...Помогите пожалуйста описать процедуру поиска или с написанием алгоритма.Есть два файла:текст и словарь,где несколько слов.
Например,дан текс:Вот над леСОМ взошла ЛУНА – одноглазый светоФОР. ЕЛЬник, кажется, залит таинственным сиянием, уПАЛ ТУСклый свет на плес.
В словаре слова близкие по тематике:Сом,Луна,Форель,Палтус.
Необходимо найти слова в тексте.
Re: C++.Помогите,пожалуйста.
Добавлено: 14 янв 2008, 20:42
drummer
переводишь текст в нижний регистр, потом попорядку ищешь все слова из словаря
Re: C++.Помогите,пожалуйста.
Добавлено: 14 янв 2008, 20:58
Стасек
Допустим,я перевел текст в нижней регистр.Дальще возникает трудность:как осуществить поиск,не обращая внимание на пробелы,точки,запятые.
А также в конце строки изменять индекс и указатель на новую строку,если есть совпадения в конце предыдущей.
Re: C++.Помогите,пожалуйста.
Добавлено: 14 янв 2008, 21:11
drummer
Можно все в один одномерный массив заталкать
или просто добавить пару проверок
Re: C++.Помогите,пожалуйста.
Добавлено: 15 янв 2008, 11:49
Хыиуду
Создаем строку. Идем по тексту: если очередной символ - буква, записываем ее в строку. Так наращиваем строку до размера, скажем, 250 символов. Потом ищем в строке слова из словаря (функция Pos). Если текст еще не закончился - обрезаем строку, скажем, до 10 последних символов и опять наращиваем
Re: C++.Помогите,пожалуйста.
Добавлено: 15 янв 2008, 14:27
Стасек
Допустим,нашли мы искомые слова,но их надо как-то выделить в тексте,другим цветом например,и я не вижу спасоба,как это можно сделать,если воспользоваться предложенным методом...
Re: C++.Помогите,пожалуйста.
Добавлено: 15 янв 2008, 17:54
drummer
Создаешь еще один массив(например, а). Потом когда загоняешь буквы в одну строку в массив а записываешь номер буквы в тексте
Re: C++.Помогите,пожалуйста.
Добавлено: 15 янв 2008, 23:58
Стасек
drummer писал(а):Создаешь еще один массив(например, а). Потом когда загоняешь буквы в одну строку в массив а записываешь номер буквы в тексте
А есть другой вариант? Потому что я плохо понимаю,как можно загнать буквы в одну строку,найти в ней нужное слово,и потом еще и занести в массив А индекс этой буквы в тексте...
Re: C++.Помогите,пожалуйста.
Добавлено: 16 янв 2008, 11:22
Хыиуду
Собрать буквы в строку - RTFM
Нахождение слова в строке - есть специальная функция (в Си вроде бы strstr) - RTFM
Добавление числа в массив - RTFM
Re: C++.Помогите,пожалуйста.
Добавлено: 16 янв 2008, 11:46
Стасек
Как собрать в строку буквы,найти слово и добавить числа в массив я понимаю.Мне не понятно другое.Добавили мы в строку буквы,в массив А добавили ее номер.В строке мы нашли искомое слово.А как дальше связать индексы нужных букв из строки и их индексы в тексте?