1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
1 | |
Поиск всех вхождений шаблона в строку21.06.2010, 00:31. Показов 6094. Ответов 20
Метки нет (Все метки)
Здравствуйте,хотела к вам обратиться за помощью..в файле t.txt есть строка из символов букв латинского алфавита,длиной до 100000 знаков. Так же в текстовом файле s.txt задаётся шаблон, в котором кроме букв латинского алфавита может присутствовать знак "*",который в свою очередь равен либо пробелу,либо произвольным буквам лат.алфавита.Длина шаблона до 20 символов.Подсчитать все возможные вхождения шаблона в строку.Ответ записать в файл.
Как читать файл,разбивать на символы я примерно знаю,но вот как сделать так,чтобы звёздочка заменяла любую комбинацию символов нет..Очень надеюсь на вашу скорую помощь*)) P.S.:шаблон можно вводить и с консоли,чтобы не усложнять задачу с считыванием символов)) Добавлено через 4 часа 58 минут хотя бы какие функции использовать для реализации???Подскажите пожалуйста
0
|
21.06.2010, 00:31 | |
Ответы с готовыми решениями:
20
Поиск всех вхождений подстроки в строку Поиск всех вхождений Количество вхождений всех символов в строку Последовательный поиск всех вхождений |
21.06.2010, 01:30 | 2 |
1
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
21.06.2010, 02:09 [ТС] | 3 |
есть программа поиска шаблона в тексте,но в maple..и она правда тоже не до конца доработана..вся загвоздка в "*"...я просто не сильна в си/си++..я на первом курсе изучала только паскаль..а потом перевелась..и с изучением новых языков есть сложности..
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
||||||
22.06.2010, 14:15 [ТС] | 4 | |||||
0
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
22.06.2010, 14:56 | 5 |
а какая выдается ошибка
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
||||||
22.06.2010, 22:19 [ТС] | 6 | |||||
выдает ошибку :[Warning] assignment makes pointer from integer without a cast
я ещё немного код передела..и снова вылезла уйма ошибок(( Добавлено через 1 минуту
0
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
22.06.2010, 22:20 | 7 |
а нужен с или с++?
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
22.06.2010, 22:22 [ТС] | 8 |
С..ошиблась с выбором кода в выделении)..ну если другую прогу делать,то без разницы..)
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
23.06.2010, 16:35 | 10 | |||||
1
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
23.06.2010, 22:08 [ТС] | 11 |
спасибо огромное..)))правда есть одна беда,видимо у меня с компиляторм..не удаётся посмотреть результат(((
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
23.06.2010, 22:29 | 12 |
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
24.06.2010, 01:39 [ТС] | 13 |
окно сразу закрывается после ввода шаблона..у меня программа Bloodshed dev-c++
Добавлено через 44 минуты ответ я увидела,но задача считает не все возможные вхождения...к примеру для acacbcbc,шаблон ac*bc входит в строку 4 раза:acacbc;acacbcbc,acbc,acbcbc.А прога находит лишь acacbc;acbc=(((
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
24.06.2010, 02:31 | 14 |
Так вы наверно это еще не читали:
https://www.cyberforum.ru/cpp-... 10807.html Мне легче, у меня в Visual Studio ничего никуда не исчезает. А насчет подстрок - вы уже определитесь что вам нужно. В примере, который вы приводили в параллельной теме, с каждой позиции строки вычислялась подстрока по ленивому алгоритму, т.е. наименьшая из возможных. А здесь вы предлагаете с каждой позиции вычислять одновременно и по ленивому и по жадному алгоритму. Те примеры вы откуда взяли? Если вам преподаватель дал, то моя программа по ним сделана и их выполняет. Если нужно что-то другое, то нужно четче формулировать.
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
24.06.2010, 02:39 [ТС] | 15 |
извините,если не смогла до вас донести суть задания..не всегда получается его чётко сформулировать ...те примеры взяты с головы,чтобы более или менее объяснить,что мне нужно..преподаватель дал 2 пример)каким алгоритмом решать я не знаю,но предполагаю,что жадным..я пыталась разбить шаблон на префикс и суффикс,а затем отдельно найти вхождения того и другого..а затем выбрать те пары,где ac находится перед bc..надеюсь теперь стало понятнее
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
24.06.2010, 02:59 | 16 |
Мне понятно, что условия задачи вам самой пока непонятны, и вам надо уточнить их с преподавателем.
А где пример, который дал преподаватель?
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
24.06.2010, 03:00 [ТС] | 17 |
строка acacbcbc,шаблон ac*bc,ответ я написала.И метод решения,который я привела является правильным.Просто я предполагаю,что существуют разные способы решения этой задачи.
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
24.06.2010, 03:10 | 18 |
Т.е. он предлагает искать с каждой позиции строки все возможные подстроки. Можно и так сделать, только тогда если, скажем, у вас вначале строки длиной 100000 стоит буква z, и задан шаблон «z*», то первое соответствие будет вся строка, второе - строка без последнего символа, и так сто тысяч раз.
0
|
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
|
|
24.06.2010, 03:12 [ТС] | 19 |
видимо так..также он упоминал алгоритм shift-or,правда я в нём так и не смогла разобраться=(
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||||||||||
24.06.2010, 12:24 | 20 | ||||||||||
Итак, возможны три способа поиска соответствующих шаблону подстрок с каждой позиции строки:
1. Искать минимально возможную подстроку (ленивый алгоритм); 2. Искать максимально возможную подстроку (жадный алгоритм); 3. Искать все возможные подстроки. Мое решение первым способом приведено выше. Добавлено через 2 минуты Программа, отыскивающая максимально возможную подстроку (жадный алгоритм):
Программа, отыскивающая все возможные подстроки:
1
|
24.06.2010, 12:24 | |
24.06.2010, 12:24 | |
Помогаю со студенческими работами здесь
20
Поиск всех вхождений текстовой строки Поиск количества вхождений символов в строку Парсинг HTML - поиск всех вхождений текста Двоичный поиск в массиве ВСЕХ вхождений искомого элемента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |