String nach einem Wort durchsuchen



  • Hallo !

    Hat jemand mal einen kleinen oder auch großen Tip wie ich einen String nach einem Wort durchsuchen kann ?
    Die C-Funktionn strstr ist ja an sich schon ganz gut allerdings sucht die ja nicht wirklich nach dem Wort sondern nur nach dem SubString. Zum Beispiel suche ich nach dem Wort Du. Die strstr findet ein Du in HalloDu aber ich möchte nach eigenständigen Wörten suchen.



  • Dann such doch nach " Du".

    Welche Kriterien muss denn ein "eigenständiges" Wort haben ?

    Du kannst auch std::string nd find verwenden.



  • Knuddlbaer schrieb:

    Welche Kriterien muss denn ein "eigenständiges" Wort haben ?

    Eigentlich ja mind. ein voranschreitendes Leerzeichen Hallo Du ! Also wäre Du hier ein Wort

    Knuddlbaer schrieb:

    Du kannst auch std::string nd find verwenden

    Ja stimmt. Gar nicht daran gedacht. Aber eine Frage zur Performance noch. Ist die Klasse String langsamer als wenn ich char Pointer verwenden würde ?



  • ein voranschreitendes Leerzeichen

    Und was wäre mit Hallo? Nach diesem Kriterium wäre Hallo ja kein eigenständiges Wort....



  • Hallo,

    Ja stimmt. Gar nicht daran gedacht. Aber eine Frage zur Performance noch. Ist die Klasse String langsamer als wenn ich char Pointer verwenden würde ?

    Nein.

    Und was wäre mit Hallo? Nach diesem Kriterium wäre Hallo ja kein eigenständiges Wort....

    Also das zu Suchende Wort seie wort.
    Erst sucht man nach " wort", falls es nicht gefunden wurde sucht man nach wort und dann überprüft man die Findeposition.
    Ist diese 0, so ist es ein eigenständiges Wort.
    Natürlich kann man, wenn " wort" nicht gefunden wurde, gerne auch nach ".wort" suchen, oder das mit [?!.,;].
    Dafür eignen sich reguläre Ausdrücke recht gut.

    MfG MAV



  • Wie sieht es eigentlich mit Regex aus? Welche der vielen Bibl. sind zu empfehlen? :xmas2:



  • Wenn Du boost verwendest: http://www.boost.org/libs/regex/hl_ref.htm



  • Regex ist soweit ich weiß auch die Art von regulären Ausdrücken die PHP verwendet, also absolut zu empfehlen.

    MfG MAV



  • Mis2com: Ich dachte RegEx(p) sei einfach die Kurzform für "Regular Expression" was - Oh Überraschung! 😉 - "Regulärer Ausdruck" bedeutet.



  • Ja ich weiß, daß auch PHP sie verwendet, habe die Ausdrücke damals zu PHP-Anfängerzeiten gelernt. Da es verschiedene Arten von Regex gibt, würde ich mich freuen, wenn die gleiche Art(Dialekt) auch eine C++-Bibliothek benutzen würde.
    Danke @nman ich sehe es mir an. 😋


Anmelden zum Antworten