Matura z informatyki - rozwiązania zadań  

Wyszukiwanie wzorca w tekście

Jest to najprostszy algorytm wyszukiwania wzorca w tekście. Polega na porównaniu do siebie fragmentu tekstu zwróconego przez funkcję substr do wzorca. Funkcja substr zwraca podciąg na podstawie indeksu początkowego i długości podciągu.

Przeanalizujemy to na przykładzie. Niech naszym tekstem, czyli zmienną n1 będzie słowo: algorytmika , a wzorcem (zmienną n2) słowo algorytm. Indeksem początkowym w funkcji substr będzie oczywiście zmienna i, która jest ustawiona na 0. Długością podciągu będzie długość naszego wzorca. Tak więc fragment kodu:

n1.substr(i, n2.size())

zwróci nam podciąg algorytm. Następnie jest on przyrównywany do wzorca, którym w naszym przypadku jest właśnie algorytm. Warunek zostanie spełniony, a program na ekran wypisze komunikat, że wzorzec został znaleziony i poda przedział (numery indeksów), w którym wzorzec znajduje się w tekście.

Przykładowy kod:

#include <iostream>

using namespace std;
int main ()
{
	int i;
	string n1, n2;
	
	cout << "Podaj tekst ";
	cin >> n1;
	cout << "Podaj wzorzec ";
	cin >> n2;
	
	for (i = 0; i <= n1.size() - n2.size(); i++)
	{ 
		if (n1.substr(i, n2.size()) == n2)
		{
			cout << "Znaleziono wzorzec w tekscie. " 
			<< i << " - " << n2.size() + i << endl;
			
		}
	}	
        return 0;
}


© 2017 MaturaInformatyka.pl || Kontakt: admin(malpa)maturainformatyka.pl

Search