A karakterlánc-kereső algoritmus arra szolgál, hogy egy nagyobb szövegen(karakterláncon) belül megkeresse egy adott minta(alkarakterlánc) előfordulásait. Ez az algoritmus döntő szerepet játszik a szövegfeldolgozási, keresési és manipulációs feladatokban.
Hogyan működik
- Kezdje egy szöveggel(karakterlánc) és egy mintával(alkarakterlánc) a kereséshez.
- Egyszerre egy karakterrel iteráld végig a szöveget.
- Hasonlítsa össze a szöveg minden egyes karakterét a minta első karakterével.
- Ha van egyezés, ellenőrizze, hogy a következő karakterek is egyeznek-e a mintával.
- Ha a minta teljesen megegyezik, jegyezze fel a gyufa kiindulási helyzetét.
- Folytassa a minta keresését a szövegben.
Példa
Vegyünk egy szöveget: "ababcababcabcabc" és egy mintát: "abc"
- Kezdje a 0. pozícióból. Hasonlítsa össze az "a"-t a minta első "a" karakterével.
- Talált egyezést, lépjen a következő karakterekre: „b” a „b”-vel és „a”-val „c”.
- Folytassa a párosítást: „b” és „a”, „a” „b”, „b” pedig „c”.
- A mérkőzés a 2. pozíciónál nem sikerült.
- Kezdje újra a 3. pozícióban. Hasonlítsa össze az "a"-t a minta első "a" karakterével.
- Sikeres egyezés: „a” az „a”-val, „b” a „b”-vel és „c” a „c”-vel.
- Rögzítési pozíció 3.
Az "abc" minta a 0, 6 és 9 pozíciókban található.
Példakód C++ nyelven
Ebben a példában a stringSearch
függvény az „abc” minta előfordulásait keresi az „ababcababcabcabc” szövegben. Az eredmény egy vektor lesz, amely a mérkőzések kezdőpontjait tartalmazza.