CString Find()



  • Ich möchte in einem String nach mehreren Wörtern suchen und wenn eins gefunden ist bescheid bekommen.
    Ich habe es bis jetzt so gemacht. Doch sieht es sehr komisch aus. Gibt es vielleicht eine bessere/sauberer Möglichkeit?

    CString s = "Hallo wie geht es euch";
    int pos, pos2;
    pos = s.Find("wie");
    pos2 = s.Find("es");
    if (pos != -1| pos2 != -1)
        AfxMessageBox("Gefunden");
    

    Ich muss in meinem Prog nach noch mehr Wörter in einem String suchen und muss daher eine Menge der Anweisungen:

    posX = s.Find("...");
    

    benutzen.
    Kann man die Wörter nicht alle irgendwie in Find einbringen?
    Oder muss ich es so lassen?



  • du kannst doch eine liste aller wörter anlegen und die in einer schleife abtesten.



  • Bin noch ein Anfänger in C++ und daher noch eine Frage:
    Wie kann ich eine Liste anlegen(Code beispiel wäre super)
    Danke



  • Solange es sich um Wörter handelt kannst du ein CStringArray nutzen.
    Kleines Beispiel

    CString s = "Hallo wie geht es euch";
    	CStringArray aList; // Liste deklarieren
    
    	// Suchwörter hinzufügen
    	aList.Add("wie");
    	aList.Add("es");
    
    	// Alle Listeinträge suchen
    	for(int i=0; i < aList.GetSize(); i++)
    		// Wenn Listeneintrag im Satz gefunden
    		if(s.Find(aList.GetAt(i)) != -1) 
    			AfxMessageBox("Gefunden");
    


  • Danke für die schnelle Hilfe guenni81



  • prog schrieb:

    Danke für die schnelle Hilfe guenni81

    Kein Problem. Freue mich immer wenn ich helfen kann... 😉


Anmelden zum Antworten