Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.08.2015
Сообщений: 37
1

Поиск подстроки в строке

20.10.2016, 12:59. Показов 473. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день, товарищи
возникло небольшое задание
найти все слова, состоящие из одной буквы, в большом тексте
я сделал сейчас вот что:
заменил все знаки препинания в исходной стоке на пробелы, а после ищу совпадения, скажем, на строку " в ",
используя при этом алгоритм кнута-морриса-пратта(по заданию ЛР именно его нужно использовать)

скопировал из методички:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int KMPSearch(char *string, char *substring) {
    int  sl, ssl;
    int res = -1;
    sl = strlen(string);
    ssl = strlen(substring);
    if (sl == 0)
        std::cout << "Неверно задана строка\n";
    else if (ssl == 0)
        std::cout << "Неверно задана подстрока\n";
    else {
        int  i, j = 0, k = -1;
        int  *d;
        d = new int[1000];
        d[0] = -1;
        while (j < ssl - 1) {
            while (k >= 0 && substring[j] != substring[k])
                k = d[k];
            j++;
            k++;
            if (substring[j] == substring[k])
                d[j] = d[k];
            else
                d[j] = k;
        }
        i = 0;
        j = 0;
        while (j < ssl && i < sl) {
            while (j >= 0 && string[i] != substring[j])
                j = d[j];
            i++;
            j++;
        }
        delete[] d;
        res = j == ssl ? i - ssl : -1;
    }
    return res;
как можно сделать, чтобы при вызове функции находилась не строго определенная строка, а любая, которая удовлетворяет такой маске " ? " ?
можно, конечно, просто перечислить все подходящие строки, вызывая кучу раз функцию с разными аргументами, но это не элегантно.
алгоритм модифицировать не воспрещается
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2016, 12:59
Ответы с готовыми решениями:

Поиск подстроки в строке
Здравствуйте. Задача такова: есть список (вообще, список большой, и не имеет в принципе...

Поиск подстроки в строке
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; int...

Поиск подстроки в строке
Здравствуйте. Очень нужна программа поиска подстроки в строке. Действительно оч нужна. точная...

Поиск подстроки в строке
Добрый вечер. У меня есть string нужно найти определенную под строку примером &quot;world&quot; Ищу с...

0
20.10.2016, 12:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2016, 12:59
Помогаю со студенческими работами здесь

Поиск подстроки в строке
Доброго времени суток! Столкнулся с такой задачей. Вводим 10 слов, далее вводим приставку (начало...

Поиск подстроки в строке
Вот код программы, почему всегда выводит 0? В чем проблема? #include &lt;iostream&gt; #include...

поиск подстроки в строке
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = &quot;HeLLo&quot; и str2 = &quot;hell&quot;...

Поиск подстроки в строке
Добрый день всем! Ребята помогите решить такую задачу. Мне нужно в строке char *text = &quot;Help me...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru