Warum erhalte ich einen Fehler für diese Zeile?Setzen Sie eine Zeichenfolge in Bedingung (C++)
Irgendwelche Ideen?
Warum erhalte ich einen Fehler für diese Zeile?Setzen Sie eine Zeichenfolge in Bedingung (C++)
Irgendwelche Ideen?
Mögliche Lösungen:
if(!newName.empty())
if(newName.size()) // If size = 0 so no caracters in string
if(newName == "") // Empty string
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())
....
Also wenn ich eine leere Zeichenfolge setzen möchte, mache ich newName = newName.empty(); ? – Jjang
@ user1334761 'newName ==" "' oder 'newName.empty(). – juanchopanza
'.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) –
ps auch versucht if (newName) und bekam diesen Fehler: – Jjang
bedingter Ausdruck vom Typ ‚const std :: string 'ist illegal – Jjang
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