Búsqueda de patrones utilizando la biblioteca C++

Dado un texto txt[0..n-1] y un patrón pat[0..m-1], escribe una función que imprima todas las apariciones de pat[] en txt[]. Puede suponer que n > m.
Ejemplos: 
 

Input : txt[] = "geeks for geeks"
        pat[] = "geeks"
Output : Pattern found at index 0
         Pattern found at index 10

Input : txt[] = "aaaa"
        pat[] = "aa"
Output : Pattern found at index 0
         Pattern found at index 1
         Pattern found at index 2

La idea es usar find() en la clase de string C++ .

CPP

// CPP program to print all occurrences of a pattern
// in a text
#include <bits/stdc++.h>
using namespace std;
 
void printOccurrences(string txt, string pat)
{
    int found = txt.find(pat);
    while (found != string::npos) {
        cout << "Pattern found at index " << found << endl;
        found = txt.find(pat, found + 1);
    }
}
 
int main()
{
    string txt = "aaaa", pat = "aa";
    printOccurrences(txt, pat);
    return 0;
}
Producción: 

Pattern found at index 0
Pattern found at index 1
Pattern found at index 2

 

Publicación traducida automáticamente

Artículo escrito por rupayan_nitdgp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *