Welche Regeln gelten für das Escapezeichen \
in Zeichenfolgenliteralen? Gibt es eine Liste aller Charaktere, die geflohen sind?Regeln für C++ - Zeichenfolgenliterale Escapezeichen
Insbesondere, wenn ich \
in einem String Literal in gedit verwenden, und folgen Sie es durch drei beliebige Zahlen, es färbt sie unterschiedlich.
ich versuche, ein std::string
aus einem wörtlichen mit dem Charakter 0
durch die Null-Zeichen (\0
), durch das Zeichen 0
gefolgt gefolgt aufgebaut zu erstellen. Die Syntaxhervorhebung hat mich jedoch darauf aufmerksam gemacht, dass dies möglicherweise etwas wie das Zeichen 0
gefolgt von dem Nullzeichen (\00
, aka \0
), also nur zwei Zeichen, erzeugt.
Für die Lösung gerade dieses ein Problem, dann ist dies der beste Weg, es zu tun:
std::string ("0\0" "0", 3) // String concatenation
Und gibt es einige Referenz für das, was das Escape-Zeichen hat in Stringliterale im Allgemeinen? Was ist zum Beispiel '\ a'?
Verwandte, wie [Escape-Sequenz zu entkommen] (http://stackoverflow.com/questions/8229521/how-to-escape-or-terminate-an-escape-sequence-in-c). Die beste Lösung besteht darin, die Verkettung so zu verwenden, wie Sie es getan haben. – MPelletier
Wenn Sie eine einzelne '\' verwenden Sie einfach '\\' benötigen. – MPelletier
Es sieht so aus, als könnte ich auch die Initialisierungslisten-Syntax verwenden: 'std :: string {'0', 0, '0'};' –