nach Sonderzeichen im String suchen



  • Hallo,

    ich habe folgenden Code:

    std::string text;
    
    	// 1. Füllen von text
    	// ...
    
    	// 2. Suchen von "\"
    	std::string::size_type pos;
    	pos = text.rfind("\");
    

    Dazu kriege ich leider immer folgende Fehlermeldung:

    error C2001: Zeilenumbruch innerhalb einer Konstanten
    error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'pos2'

    Wie kann ich denn dann nach dem Zeichen '\' in einem String suchen?
    VIELEN DANK!
    V.K.



  • den backslash escapen:

    "\\"
    


  • Zur Erklärung - der Backslash leitet Sonderzeichen-Sequenzen wie \n (Zeilenumbruch), \0 (Stringende-Marke) oder auch \" (Anführungszeichen als String-Bestandteil) ein - deswegen mußt du ihn maskieren, wenn du ihn in Reinform haben willst.

    In deinem Beispiel wird die Kombination \" nicht als Stringende gesehen, sondern als 'echtes' Anführungszeichen - und der Compiler beschwert sich anschließend, daß bis zum Ende der Code-Zeile kein Stringende aufgetaucht ist.



  • Danke Euch!


Anmelden zum Antworten