|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.09.2011, 07:15 | #1 |
Форумчанин
Регистрация: 02.06.2011
Сообщений: 282
|
поиск символов (подсчёт вхождений подстроки в строку)
есть строка, например string (но не принципиально, можно и что-нибудь другое). как в ней найти количество одинаковых заданных подпоследовательностей? стандартные функции не подходят (find, find_first_of).
или в CString'е есть такая функция? например есть строка 01010100011010100010101000 количество подстрок 000 встречается три раза |
24.09.2011, 08:11 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вынужден сразу предупредить - C/С++ я совсем не знаю.
но куда копать - подскажу. подобные задачи могут быть решены разными способами. примерно вот так: 1) в каких-то функциях библиотеках ЯП (ЯВУ) может быть функция, непосредственно решающая Вашу задачу, путём подсчёта вхождения подстроки в строку 2) если такой функции нет (или Вы её не нашли), тогда смотрите перегруженные методы поиска (find, find_of, indexOf, pos(), posEx() и т.п.) на предмет наличия индекса, с которого начинать поиск. Если нашли такую - тогда - бинго! Организовываете простенький цикл, в цикле считаете вхождения и индекс, с которого начинать искать присваиваете найденной позиции + длина искомой подстроки. цикл крутите пока что-то находится. 3) если нет и такой функции, тогда остаются два "топорных" способа искать в цикле, каждый раз после нахождения наращивать счётчик и удалять всё в строке с начала строки до найденной подстроки (включая и её). цикл крутить, пока в строке есть подстрока (обычный indexof или как он там называется) 4) ну и второй "топорный" способ - это самый низкий уровень, выделять из строки нужное число символов, сравнивать с искомой подстрокой. если текущее выделение не совпало, увеличивать на один индекс, с которого берём символы из строки. если совпало, тогда наращивате счётчик вхождений и индекс сдвигаете на длину искомой подстроки. цикл крутить до ДлинаСтроки-длинаИскомойПодстроки |
24.09.2011, 10:18 | #3 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Да ладно?
Код:
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчёт количества вхождений элемента | Farrel | SQL, базы данных | 1 | 04.05.2011 11:41 |
Определить кол-во вхождений символа в си-строку. | mohita | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 29.11.2010 04:28 |
Найти кол-во вхождений подстроки в строку | Kuzya59 | Общие вопросы Delphi | 4 | 21.09.2009 12:46 |
Функция для определения числа вхождений подстроки в строку | motorway | Microsoft Office Excel | 1 | 15.07.2009 23:28 |
Определить количество вхождений строки S1 в строку S2 | Berckyt | Microsoft Office Word | 5 | 16.03.2009 00:27 |