Text verbinden
Der Operator + kann auch Texte vom Typ std::string verbinden. Das Ergebnis ist ein neuer Text, den du in einer Variablen speichern oder ausgeben kannst:
std::string vorname = "Anna";
std::string nachname = "Schmidt";
std::string vollerName = vorname + " " + nachname;
std::cout << vollerName << "\n";Das gibt aus:
Anna SchmidtGenau wie << fügt auch + keine Leerzeichen ein. Deshalb steht zwischen Vor- und Nachnamen " ": ein Text, der nur ein Leerzeichen enthält. Ohne ihn bekämst du AnnaSchmidt.
Mit += hängst du Text an das Ende einer Variablen an:
std::string nachricht = "Hallo";
nachricht += ", Anna";
nachricht += "!";
std::cout << nachricht << "\n";Das gibt aus:
Hallo, Anna!Typische Fehler:
- Zwei Texte in Anführungszeichen kannst du nicht mit
+verbinden.std::string begruessung = "Hallo, " + "Anna";endet mit dem Fehlerinvalid operands to binary expression ('const char[8]' and 'const char[5]'). Ein Text in Anführungszeichen ist für sich allein keinstd::string, und+kann mit zwei davon nicht arbeiten. Mindestens eine Seite von+muss also einstd::stringsein, zum Beispiel eine Variable:vorname + "!"funktioniert. +macht aus Zahlen keinen Text. Istpunkteeinint, lässt sich"Punkte: " + punktekompilieren, gibt aber Unsinn aus, etwa ein Stück eines anderen Textes aus dem Speicher. Undvorname + punkteendet mit dem Fehlerinvalid operands to binary expression. Gib Zahlen mit Text also mit<<aus:std::cout << "Punkte: " << punkte;
So schreibst du es:
Anweisungen
- 1
Erstelle eine Variable
vollerNamevom Typstd::string: Verbinde mit+vorname, ein Leerzeichen undnachname. - 2
Gib
vollerNameaus. Das Programm sollteAnna Schmidtausgeben. - 3
Erstelle darunter eine Variable
begruessungmit dem Wert"Hallo, "und hänge mit+=vornamean sie an. - 4
Hänge auch ein Ausrufezeichen an
begruessungan und gib sie in der nächsten Zeile aus. Das Programm sollte ausgeben:Anna Schmidt Hallo, Anna!