Member 12898564 Ответов: 1

Как сделать поиск по нескольким шаблонам в тексте?


Поэтому, когда мы хотим выполнить поиск шаблона в строке текста, мы можем использовать многие алгоритмы поиска, такие как KMT и RK. Нам просто нужна функция с двумя указателями параметров, которая хранит тип символа, а затем циклически перебирает текст для поиска шаблона. Что будет, если нам дадут массив указателей для паттернов, который говорит нам, что параметр для паттерна-это список массивов. Как я должен передать этот параметр шаблона в функцию, чтобы я мог писать циклы для поиска каждого шаблона отдельно?
экс

int ( char* txt, char * pat[])


Что я уже пробовал:

Я попробовал что-то вроде 2d-массива ниже

char patterns[100][200] = pat;
for (int i = 0; i < 100; i++)
   for (int j=0; j < 100;j++)
   n = pattern[i][j] + some other function


это, кажется, даже не позволяет мне пройти инициализацию массива.

Mohibur Rashid

Вы пробовали ПЦР?

Patrice T

В чем твоя проблема ?
Покажите свой код.

PIEBALDconsult

Может быть, регулярные выражения?

1 Ответов

Рейтинг:
1

Richard MacCutchan

Вы смешиваете char массивы с char* массивы. вам нужно что-то вроде:

int searchFunc(char*sourceString, char** patterns)
{
    while (*patterns)
    {
        char* searchText = *patterns;
        // do search on this pattern
    }
    return result;
}

char* pats[6];
for (int i = 0; i < 5; ++i)
{
    pats[i] = <next search pattern>
}
pats[5] = NULL;
int rc = searchFunc("a string to be searched", pats);