|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.09.2018, 12:14 | #1 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Строки.
Здравствуйте!
Надо посчитать количество повторов в строке определённого слова. Используя find() нахожу только первое. Далее в цикле он не хочет искать с позиции найденного. (Ну так ведь на вход метода идут те же данные. (Сначала я этого признавать не хотел))). Есть варварский вариант осекать от строки всё до найденного слова плюс размер слова, и искать дальше (str.erase(x,e). Хотелось бы узнать, есть ли более цивилизованное решение. Т.е. как для find фиксировать позицию от которой начинать новый поиск. На Вики нет таких данных. |
22.09.2018, 12:21 | #2 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Может сделать из неё массив и сравнивать по ячейкам?
|
22.09.2018, 12:28 | #3 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Может заменять на равновесное слово не совпадающее символами?
Но это всё равно всё варварство. |
22.09.2018, 12:49 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Ну так задавайте второй параметр в цикле для find, сначала 0, потом i, потом i2,..
|
22.09.2018, 13:08 | #5 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Я сделал так. Но выдает только одно слово, хотя в тестовом вводе я делаю три.
Код:
|
22.09.2018, 13:13 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
1. Результат find надо сравнивать с npos
2. Ну так у вас логическая ошибка. Возьмите листок напишите АББАББА и поищите по вашему алгоритму ББ. Вы же не двинетесь дальше первого вхождения, т.к. всегда с него вы и искать начинаете. |
22.09.2018, 13:19 | #7 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Я и так уже знаю что дальше первого вхождения не двигаюсь. Знаю, что где-то что-то не то. Но пока не знаю где.
Мыслю так: при поиске через find ставится позиция равная y. *ляяя уже понял, надо добавлять к ней длину строки поиска..))) |
22.09.2018, 13:21 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Ну или хотя бы 1...)
|
22.09.2018, 13:26 | #9 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти строки матрицы, для которых есть коллинеарные строки | DowL_HH4 | Общие вопросы C/C++ | 1 | 27.04.2018 12:50 |
Выводить только измененные строки. Перед каждой строкой записывать номер строки в исходном тексте.используя строки и текст.файл | nero4ka | C++ Builder | 1 | 13.06.2015 07:14 |
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и | ANTON1994 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 09.02.2013 14:07 |
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки | Алексей_2012 | Помощь студентам | 1 | 05.04.2012 11:26 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |