2012-04-15 15 views
0

Warum erhalte ich einen Fehler für diese Zeile?Setzen Sie eine Zeichenfolge in Bedingung (C++)

Irgendwelche Ideen?

+0

ps auch versucht if (newName) und bekam diesen Fehler: – Jjang

+0

bedingter Ausdruck vom Typ ‚const std :: string 'ist illegal – Jjang

+0

Wenn Sie nach einer leeren Zeichenfolge suchen, versuchen Sie 'if (newName ==" ")' oder Bo's 'if (! newName.empty())' Es gibt keinen echten Verifikationsvergleich für die Zeichenfolge, die ich kenne obwohl. – chris

Antwort

2

Mögliche Lösungen:

if(!newName.empty()) 

if(newName.size()) // If size = 0 so no caracters in string 

if(newName == "") // Empty string 
1

Dies ist nicht C#, eine Zeichenfolge in C++ ist kein NULL-fähiger Typ. Nur Zeiger können tatsächlich NULL sein. Sie können eine Variable nicht definieren, ohne ihr einen Basiswert in C++ zuzuweisen, außer wenn Sie einen Zeiger verwenden.

Der Code sollte wahrscheinlich so aussehen:

if(!newName.empty()) 
    .... 
+0

Also wenn ich eine leere Zeichenfolge setzen möchte, mache ich newName = newName.empty(); ? – Jjang

+0

@ user1334761 'newName ==" "' oder 'newName.empty(). – juanchopanza

+0

'.empty' ist eine boolesche Funktion. Es gibt keine Zeichenfolge zurück, es gibt zurück, ob es leer ist oder nicht. Es ändert auch nicht den Inhalt der Zeichenfolge (@juanchopanza) –

Verwandte Themen