Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- int zeichenkette_suchen_rekursiv(
- string textE,
- string zketteE,
- unsigned int text_pos,
- unsigned int text_such_pos,
- unsigned int zkette_such_pos)
- {
- string text = textE;
- string zkette = zketteE;
- int position = text_pos;
- int textStelle = text_such_pos;
- int zeichenKettePos = zkette_such_pos;
- int zLaenge = zkette.size();
- int tLaenge = text.size();
- int zaehler=0;
- int abstand=0;
- bool zeichenKetteGefunden = false;
- if (zLaenge > zeichenKettePos)
- {
- if (tLaenge > textStelle)
- {
- char b1 = text.at(textStelle);
- char b2 = zkette.at(zeichenKettePos);
- if (b1 == b2)
- {
- textStelle++;
- zeichenKettePos++;
- if (zeichenKettePos == zLaenge)
- {
- zeichenKetteGefunden = true;
- }
- if (zeichenKetteGefunden)
- {
- cout << "Die Zeichenkette '"<<zkette<<"' ist in dem Text '"<<text<<"' enthalten." << endl;
- cout << "Sie startet ab Zeichen " << position << " (bei Zaehlung ab 0). "<<endl;
- }
- zeichenkette_suchen_rekursiv(text, zkette, position, textStelle, zeichenKettePos);
- }
- else
- {
- textStelle++;
- zeichenKettePos = 0;
- if (zeichenKettePos == 0)
- {
- zeichenKetteGefunden = false;
- }
- if (position == tLaenge-1)
- {
- cout << "Die Zeichenkette '"<< zkette<<"' ist NICHT in dem Text '" <<text<<"' enthalten" << endl;
- }
- position = textStelle;
- zeichenkette_suchen_rekursiv(text, zkette, position, textStelle, zeichenKettePos);
- }
- }
- }
- return 0;
- }
- int main()
- {
- string eingabeText = "";
- string suchenderText = "";
- cout << "Bitte geben Sie den Text ein: ";
- getline(cin, eingabeText);
- cout << "Bitte geben Sie die zu suchende Zeichenkette ein: ";
- getline(cin, suchenderText);
- zeichenkette_suchen_rekursiv(eingabeText, suchenderText,0,0,0);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement