В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
1 | |||||||||||
Поиск слов в файле03.07.2010, 03:36. Показов 1895. Ответов 19
Метки нет (Все метки)
Попытался сделать вот эту: Поиск слов в файле
Программу... Сложность ее по-моему мнению, в том, что поиск подстроки должен быть независим от регистра. Поправьте, если я не прав, ибо с регистром это абсолютно без проблем. Но вот я попытался сделать без регистра. Навертел жуткий велосипед. Это не работа с файлом. Просто заготовка. Но я запутался по полной программе. Сижу уже три часа и тупо не могу ее написать. Вот что вышло, за код не ругать, пытался всеми доступными средствами. Да кстати. Обязательно через char.
Вот с учетом регистра, а как все же без него?
1
|
03.07.2010, 03:36 | |
Ответы с готовыми решениями:
19
Поиск в текстовом файле всех слов, заданных в другом текстом файле Поиск слов в файле Поиск слов в файле Поиск слов в файле |
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
03.07.2010, 08:04 | 2 |
создай вектор, где каждый элемент - строка
читай каждое предложение в строку строку сохраняй в вектор потом в векторе ищешь нужное предложение Добавлено через 3 минуты для слов одной строки можно создать ещё один вектор
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.07.2010, 10:14 [ТС] | 3 |
А без стл? Так подумал вчера ночью... Если и строку и подстроку перевести в нижний регистр, и тогда только искать, будет ли это считаться как выполнение задания?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.07.2010, 10:33 [ТС] | 5 |
Отделено, но я ищу по предложениям, strtok(str, "."). А потом уже ищу вхождение подстроки в строку. Если входит - печатаю это предложение.
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
03.07.2010, 10:35 | 6 |
Можно завести две буферные строки, загружать в них предложение и слово, приводить к одному регистру, затем сравнивать.
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.07.2010, 10:37 [ТС] | 7 |
Вот. Именно так я и подумал. Но все же, будет ли это решением задачи в практическом смысле? Ведь печатать он будет не предложение, которое в строке было, а предложение которое приведено в нижнему/верхнему регистру. Или же вы имеете ввиду еще две строки, то есть в str2 копировать данные из ptr и приводить ее к нижнему регистру, а в substr2 копировать данные из substr и приводить их к нижнему регистру, если слово входит печать ptr, а ptr каким был таким и остался?
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
03.07.2010, 10:43 | 9 |
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.07.2010, 10:43 [ТС] | 10 |
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
03.07.2010, 10:48 | 11 |
Сообщение от Lavroff
вдруг добавится условие "вывести все такие предложения друг за другом" или "сохранить в новый файл в том же формате, что и исходный" Добавлено через 1 минуту это вообще такой знак, когда что-то неудобно написать, начинаешь подгонять задачу под код значит программа тобой управляет таким образом не дело сделаешь, а в тупик зайдёшь
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
03.07.2010, 10:49 [ТС] | 12 | |||||
accept, В этом плане конечно да.
kazak, Вы имели ввиду вот так?
А как делается через массив указателей?
0
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
||||||
03.07.2010, 10:51 | 13 | |||||
Сообщение было отмечено ForEveR как решение
Решение
вот такой вариант (STL)
тогда вам надо на с а не на с++?
1
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
03.07.2010, 10:52 | 14 |
Lavroff, да, примерно так.
1
|
Унылый школьник
126 / 60 / 10
Регистрация: 06.11.2009
Сообщений: 353
|
|
03.07.2010, 11:00 | 15 |
Lavroff, а что мешает сделать еще одну строку-оригинал, в которую перед изменением регистра положить исходное предложение? И потом вместо измененной строки выводить ее
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
03.07.2010, 21:09 [ТС] | 16 |
PointsEqual, Разве С++ онли стл? оО
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
04.07.2010, 15:38 | 17 |
Нет, конечно. Дело в другом: STL реализует кучу алгоритмов, за отсутствием которых и приходилось бы велосипеды делать. Просто при наличии такого мощного проверенного и отлаженного арсенала городить уродцев, делающих то же самое, но не факт, что правильно, как-то незачем...
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.07.2010, 15:42 [ТС] | 18 |
easybudda, Понятное дело) Но если еще не знаешь стл, а изучаешь все по порядку, то как же быть, кроме как городить велосипеды?
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
04.07.2010, 15:52 | 19 |
Не знаешь - так учи! http://www.cplusplus.com/reference/
На самом деле совсем не так сложно, как может на первый взгляд показаться. Главное вкурить основную концепцию использования этого счастья (контейнеры, итераторы, прочее...). Опять же много книжек есть хороших...
1
|
102 / 102 / 23
Регистрация: 12.05.2010
Сообщений: 232
|
|
04.07.2010, 16:37 | 20 |
по-моему проще разбивать строку strtok потом сравнивать с искомым словом без учета регистра stricmp
0
|
04.07.2010, 16:37 | |
04.07.2010, 16:37 | |
Помогаю со студенческими работами здесь
20
Поиск слов в файле. Поиск слов в файле, начинающихся с Поиск и замена слов в файле Поиск повторяющихся слов в текстовом файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |