„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verkettet man String-Literale und Zeichen-Literale in C++?

Wie verkettet man String-Literale und Zeichen-Literale in C++?

Veröffentlicht am 03.11.2024
Durchsuche:559

How to Concatenate String Literals and Character Literals in C  ?

String-Literale und Zeichen-Literale in C

Beim Versuch, String-Literale mit Zeichen-Literalen in C zu verketten, kann es zu unerwartetem Verhalten kommen. Zum Beispiel:

string str = "ab"   'c';
cout 

Dieser Code erzeugt eine unvorhersehbare Ausgabe, da der Operator „ “ nicht für die Kombination von Zeichenfolgenliteralen und Zeichenliteralen definiert ist. Stattdessen behandelt der Compiler das Zeichenfolgenliteral als Zeichenfolge im C-Stil (einen const char-Zeiger) und fügt den heraufgestuften int-Wert des Zeichenliterals zur Adresse des Zeichenfolgenliterals hinzu. Dies führt zu undefiniertem Verhalten.

Um dieses Problem zu vermeiden, konvertieren Sie das Zeichenliteral vor der Verkettung explizit in eine Zeichenfolge:

std::string str = std::string("ab")   'c';

Alternativ können Sie die Verkettung verwenden, um das gewünschte Ergebnis zu erzielen:

std::string str = "ab";
str  = 'c';

Im zweiten Codeausschnitt verfügt das String-Objekt über einen überladenen „ “-Operator, der die beabsichtigte Verkettung durchführt.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3