Stringvergleich



  • Hallo,

    warum ist das verboten?

    void foo(string* word) {  
      if((*word)[0] == "\"") //verboten
        doSth();
    }
    

    und wie lautet es korrekt?

    thx



  • njko schrieb:

    warum ist das verboten?

    Weil (*word)[0] ein char und "\"" ein Stringliteral ist. Du möchtest wahrscheinlich '\"' schreiben (oder '"' ).



  • njko schrieb:

    warum ist das verboten?

    Steht sicher in der Fehlermeldung, die du uns vorenthaeltst.

    und wie lautet es korrekt?

    Das kommt drauf an, was du machen moechtest. Nimmt man das * vor word weg, dann kompiliert es zumindestens.



  • hat es einen grund wieso du den string als zeiger übergibst?

    ansonsten das selbe wie knivil.

    void foo(string const& Word)
    {  
        Word == "\""; // Prüfen, ob der ganze String ein " ist
        Word[0] == '"'; // Prüfen, ob das erste Zeichen ein " ist (solltest vll. zuerst auf Word.empty() prüfen damit du kein ub haben kannst)
    }
    

Log in to reply