Podstawowy (naiwny) algorytm wyszukiwania wzorca w tekście

Naiwne wyszukiwanie wzorca w tekście:

Zapoznaj się z poniższym dokumentem:


lub pobierz go: wyszukiwanie wzorca w tekście

Film wyjaśni algorytm i pomoże w programowaniu

Kod programu z filmu:

//naiwne wyszukiwanie wzorca w tekście
#include <iostream>
using namespace std;

int czy_wzorzec(string tekst, string wzorzec, int punkt_startu){
	int j;
	for(j=0; j<wzorzec.size(); j++){
		if(tekst[punkt_startu+j]!=wzorzec[j]) return -1;
	}
	return punkt_startu;
}

int main() {
	string tekst;
	string wzorzec;
	int i, d1, d2, wynik;
	cout << "podaj tekst: ";
	getline(cin, tekst);
	cout << "podaj wzorzec: ";
	getline(cin, wzorzec);
	cout << "w wyrazeniu: " << tekst << endl;
	cout << "wzorzec: " << wzorzec << endl;
	cout << "zaczyna sie od pozycji nr: " << endl;
	d1=tekst.size();
	d2=wzorzec.size();
	for(i=0; i<=d1-d2; i++){
		wynik=czy_wzorzec(tekst, wzorzec, i);
		if(wynik>=0) cout << wynik << " ";
	}
	return 0;
}

Wykorzystanie kodów:

  • Powyższy kod można wykorzystać w środowisku Dev C++ lub innym. Wystarczy utworzyć nowy projekt i wkleić ten kod zamiast istniejącego.
  • Można też użyć kodu na jednej ze stron WWW z kompilatorami on-line, na przykład na stronie: www.cpp.sh