Форум программистов, компьютерный форум CyberForum.ru

Поиск подстроки - C++

Восстановить пароль Регистрация
 
ogcjm
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 34
30.10.2012, 19:38     Поиск подстроки #1
Всем привет. Вот такое вот дали задание: найти все вхождения данного образца в строке. При этом надо указать индекс в тексте с которого начинается подстрока. Возник следующий вопрос: пусть есть текст A = {aaaaa} и образец P = {aa}. Индексы начала подстрок будут {1,2,3,4} или {1,3}, т.е. если найдена первая подстрока, а начало второй подстроки совпадает с концом 1 подстроки, то что делать в этом случае?

Добавлено через 18 минут
Up.....

Добавлено через 11 минут
up...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 19:42     Поиск подстроки #2
Это скорее надо спрашивать у дававшего задание.
Я бы сделал так - {1,2,3,4}
33parrots
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 23
30.10.2012, 19:43     Поиск подстроки #3
Индексы начала подстрок будут {1,2,3,4}.
начало второй подстроки совпадает с концом 1 подстроки, то что делать в этом случае?
не вижу проблемы. Для каждого возможного начала подстроки проверяешь является ли текст, начиная с данной позиции, подстрокой. Самый школьный вариант.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 20:39     Поиск подстроки #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Search(char *s, char *t)
{
   char *ps = s;
   while(ps = strstr(ps, t))
   {
       printf("%d\n", ps - s);
       ++ps;
   }
}
 
int main()
{
   Search("aabbaaa", "aa");
   return 0;
}
Yandex
Объявления
30.10.2012, 20:39     Поиск подстроки
Ответ Создать тему
Опции темы

Текущее время: 10:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru