Betrachten Sie die folgende Zielzeichenfolge:
"Auf dem Mond tanzen"
''!'als Zeichen kann an die Zielzeichenfolge angehängt werden, damit sie wird,
"Auf dem Mond tanzen!"
Das Substring „S -Oberfläche“ kann an die Zielzeichenfolge beigefügt werden, damit es wird,
"Auf der Oberfläche des Mondes tanzen"
Die C ++ - String -Klasse verfügt über die Mitgliedsfunktion, append () zum Anhängen. Es gibt tatsächlich 9 Varianten dieser Mitgliedsfunktion in C ++ 20. Solche Funktionen von Funktionen werden überlastete Funktionen bezeichnet. Die 9 überlasteten Funktionen werden in diesem Artikel erläutert, beginnend mit dem einfachsten. Die Funktion c ++ String push_back () wird ebenfalls erklärt. Strings, die als Array-of-CAR oder als konstante Zeiger-Zu-Autos deklariert sind. Nur Strings, die aus der String -Klasse instanziiert werden.
Basic_string & Append (const t & t)
Diese Mitgliedsfunktion gibt die angehängte Zeichenfolge zurück. Es dauert als Argument, ein Array-of-Cary. Der folgende Code zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
char chs [] = "'s obere";
String -Ergebnis = Ziel.anhängen (CHS);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
HINWEIS: Sowohl die ursprünglichen als auch die zurückgegebenen Saiten sind beigefügt.
Basic_string & Append (const chart* s)
Diese Mitgliedsfunktion ist der obigen Funktion sehr ähnlich. Es braucht einen ständigen Zeiger auf Zeichen als Argument und gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
const char* cpc = "'s obere";
String -Ergebnis = Ziel.append (CPC);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Basic_string & Append (Initializer_List)
Diese Mitgliedsfunktion ähnelt der oben genannten. Die Liste kann ein String -Literal in Doppelzitaten oder eine Abfolge von Zeichen sein, die mit dem NUL (\ 0) -Zeichen in Klammern enden. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies für die Streicherliteral in Doppelquotten:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String -Ergebnis = Ziel.append ("'s obere");
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Das folgende Programm veranschaulicht dies für die Anhangszeichenfolge als Array-of-Characters:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String -Ergebnis = Ziel.append ('\' ',' s ', ",' s ',' u ',' r ',' f ',' a ',' c ',' e ',' \ 0 ');
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Basic_string & Append (const Basic_string & str)
Diese Mitgliedsfunktion ähnelt der oben genannten. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies (für zwei String -Objekte):
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String otanStr = String ("'s oberen");
String :: Iterator it = AndersStr.Start();
String -Ergebnis = Ziel.anhängen (otherStr);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Basic_String & Append (InputIterator zuerst, InputIterator zuletzt)
Diese Mitgliedsfunktion ähnelt dem oben genannten, aber für ihre Argumente nimmt sie einen Bereich von einem anderen instanziierten String -Objekt aus, wobei „First“ ein Iterator ist, der auf das erste Element des Bereichs hinweist, und „letztes“ ein weiterer Iterator, der Punkte zeigt Kurz nach dem letzten Element des Bereichs. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies für zwei String -Objekte:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String otanStr = String ("Die Erdoberfläche ist nicht glatt");
String :: Iterator it = AndersStr.Start();
String :: Iterator fst = es + 9;
String :: Iterator lst = es + 19;
String -Ergebnis = Ziel.append (fst, lst);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Beachten Sie, wie die FST- und LST -Iteratoren bestimmt wurden.
Basic_string & Append (const chart* s, size_type n)
Diese Mitgliedsfunktion ist ähnlich wie die oben genannten, fügt jedoch die ersten N-Zeichen der Zeichensequenz hinzu, auf. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
const char* cpc = "'s obere";
String -Ergebnis = Ziel.append (cpc, 7);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Brandung des Mondes
Basic_string & Append (const t & t, size_type pos, size_type n = npos)
Diese Mitgliedsfunktion ähnelt dem oben genannten, findet jedoch n Zeichen der Zeichensequenz an, auf die von einem Konstant-Zeiger-zu-Char-Bereich abzeigt, der aus dem Index POS beginnt, Pos, POS. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
const char* cpc = "'s obere";
String -Ergebnis = Ziel.append (cpc, 2, 5);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf dem Mondsurfen
Wenn das dritte Argument nicht vorhanden ist, werden die Zeichen von POS bis zum Ende seiner Zeichenfolge übernommen.
Basic_string & Append (const Basic_string & str, SRICE_TYPE POS, size_type n = npos)
Diese Mitgliedsfunktion ist ähnlich wie im obigen. Die Funktion gibt die angehängte Zeichenfolge zurück. Das folgende Programm zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String otanStr = "'s Oberfläche";
String -Ergebnis = Ziel.append (otanStr, 2, 5);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf dem Mondsurfen
Wenn das dritte Argument nicht vorhanden ist, werden die Zeichen von POS bis zum Ende seiner Zeichenfolge übernommen.
Basic_string & Append (size_type n, Diagramm c)
Diese Mitgliedsfunktion kann die Anzahl desselben Zeichens anhängen, C. Das folgende Programm veranschaulicht dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
char ch = '!';
String -Ergebnis = Ziel.append (3, ch);
Cout << result << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf dem Mond!!!
void push_back (Diagramm c)
Die Funktion push_back () gibt ungültig zurück. Es findet nur einen Charakter an, c. Das folgende Programm zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
char ch = '!';
Ziel.push_back (ch);
Cout << target << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf dem Mond!
Da keine neue Zeichenfolge zurückgegeben wird, sollte die ursprüngliche Zielzeichenfolge geändert werden.
Einfügen
Die String -Klasse hat auch eine Mitgliedsfunktion, Insert (). Es ist auch eine überlastete Funktion verschiedener Varianten. Eines der Hauptargumente für die Einfügungsfunktion ist ein Iterator. Wenn sich die Funktion insert () als die Funktion append () verhält, benötigt sie einen Iterator, der kurz nach dem letzten Zeichen der Zeichenfolge zeigt. Alle Funktionen Insert () ändern das ursprüngliche Ziel und geben die angehängte Zeichenfolge nicht zurück.
Das folgende Programm zeigt, wie ein einzelnes Zeichen an eine Zielzeichenfolge angehängt wird, wobei die Funktion Insert () verwendet wird:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String :: Iterator it = Ziel.Ende();
Ziel.einfügen (it, '!');
Cout << target << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf dem Mond!
Das folgende Programm zeigt, wie eine Initialisiererliste an eine Zeichenfolge beigefügt ist:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String :: Iterator it = Ziel.Ende();
Ziel.einfügen (it, '\' ',' s ',', 's', 'u', 'r', 'f', 'a', 'c', 'e', '\ 0') ;
Cout << target << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Anstatt den Iterator zu verwenden, kann die Funktion Insert () die Zahl verwenden, die ein größer ist als der maximale Index. Diese Zahl kann durch den Ausdruck Stringobj erhalten werden.Größe(). Der folgende Code zeigt dies:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String :: Iterator it = Ziel.Ende();
const char* cpc = "'s obere";
Ziel.Einfügen (Ziel.size (), cpc);
Cout << target << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Das folgende Programm ähnelt dem obigen, aber die andere Zeichenfolge ist ein String -Objekt:
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
String target = string ("auf dem Mond tanzen");
String :: Iterator it = Ziel.Ende();
String otanStr = String ("'s oberen");
Ziel.Einfügen (Ziel.size (), anderestr);
Cout << target << endl;
Rückkehr 0;
Die Ausgabe ist:
Tanzen auf der Mondoberfläche
Abschluss
Verwenden Sie zur Anhaftung an eine Zielzeichenfolge die String -Klasse append () Mitgliedsfunktion. Es gibt neun überladene Varianten der append () Mitgliedsfunktion in C++. Um nur ein Zeichen anzuhängen, kann die Member -Funktion push_back () verwendet werden. Die Member -Funktion Insert () kann auch zum Anhängen verwendet werden. In diesem Fall muss auf die Position kurz nach dem letzten Zeichen der Zeichenfolge zugegriffen werden.