Mehrzeilige Zeichenkette in C++ deklarieren
-
Verwendung der Klasse
std::string
zur Deklaration eines mehrzeiligen Strings in C++ -
Verwendung der
const char *
Notation zur Deklaration von mehrzeiligen String-Literalen -
Verwendung der
const char *
Notation mit Backlash-Zeichen Mehrzeiliges String-Literal deklarieren
In diesem Artikel werden verschiedene Methoden erläutert, wie man einen mehrzeiligen String in C++ deklariert.
Verwendung der Klasse std::string
zur Deklaration eines mehrzeiligen Strings in C++
Das Objekt std::string
kann mit einem String-Wert initialisiert werden. In diesem Fall deklarieren wir die String-Variable s1
als lokale Variable der Funktion main
. C++ erlaubt die automatische Verkettung mehrerer in doppelten Anführungszeichen stehender String-Literale in einer Anweisung. So kann man bei der Initialisierung der string
-Variablen beliebig viele Zeilen einfügen und den Code konsistent lesbar halten.
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
string s1 =
"This string will be printed as the"
" one. You can include as many lines"
"as you wish. They will be concatenated";
copy(s1.begin(), s1.end(), std::ostream_iterator<char>(cout, ""));
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
This string will be printed as the one. You can include as many linesas you wish. They will be concatenated
Verwendung der const char *
Notation zur Deklaration von mehrzeiligen String-Literalen
In den meisten Situationen kann es jedoch praktischer sein, ein schreibgeschütztes Zeichenkettenliteral mit einem const
-Qualifier zu deklarieren. Dies ist vor allem dann praktisch, wenn relativ lange Texte auf der Konsole ausgegeben werden sollen und diese Texte meist statisch sind und sich im Laufe der Zeit kaum oder gar nicht ändern. Beachten Sie, dass die Zeichenkette mit dem Qualifier const
in das Objekt std::string
konvertiert werden muss, bevor sie als Argument des copy
-Algorithmus übergeben wird.
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
const char *s2 =
"This string will be printed as the"
" one. You can include as many lines"
"as you wish. They will be concatenated";
string s1(s2);
copy(s1.begin(), s1.end(), std::ostream_iterator<char>(cout, ""));
cout << endl;
return EXIT_SUCCESS;
}
Ausgabe:
This string will be printed as the one. You can include as many linesas you wish. They will be concatenated
Verwendung der const char *
Notation mit Backlash-Zeichen Mehrzeiliges String-Literal deklarieren
Alternativ kann man auch das Backslash-Zeichen \
verwenden, um ein mehrzeiliges String-Literal zu konstruieren und es dem const
qualifizierten Zeiger char
zuzuweisen. Kurz gesagt, das Backslash-Zeichen muss am Ende jedes Zeilenumbruchs enthalten sein, was bedeutet, dass die Zeichenkette in der nächsten Zeile fortgesetzt wird.
Seien Sie sich aber bewusst, dass die Handhabung des Zeilenumbruchs fehleranfälliger wird, da alle unsichtbaren Zeichen wie Tabulatoren oder Leerzeichen in die Ausgabe einbezogen werden. Andererseits kann man diese Funktion nutzen, um einige Muster einfacher auf der Konsole darzustellen.
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
const char *s3 =
" This string will\n\
printed as the pyramid\n\
as one single string literal form\n";
cout << s1 << endl;
printf("%s\n", s3);
return EXIT_SUCCESS;
}
Ausgabe:
This string will
printed as the pyramid
as one single string literal form
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++