HOWTO · C++
Comment concaténer deux chaînes de caractères en C++
Cet article présente la façon de concaténer deux chaînes de caractères en C++
Sur cette page
Cet article présente plusieurs méthodes pour concaténer deux chaînes de caractères en C++.
Utilisez l’opérateur += pour concaténer deux chaînes de caractères en C++
Le type std::string est mutable et supporte nativement les opérateurs = et +=, ce dernier se traduisant directement par une concaténation de chaînes en place. Cet opérateur peut être utilisé pour concaténer une variable de type string, une chaîne littérale, une chaîne de style C, ou un caractère à un objet string. L’exemple suivant montre deux variables de type string qui sont ajoutées l’une à l’autre et envoyées à la console.
#include <iostream>
#include <string>
using std::copy;
using std::cout;
using std::endl;
using std::string;
int main() {
string string1("Starting string ");
string string2("end of the string ");
cout << "string1: " << string1 << endl;
string1 += string2;
cout << "string1: " << string1 << endl;
return EXIT_SUCCESS;
}
Production:
string1: Starting string
string1: Starting string end of the string
On peut aussi construire une fonction personnalisée qui prend deux variables string comme paramètres et retourne le résultat de la concaténation. Notez que string a un constructeur de déplacement, donc le retour de longues chaînes par valeur est assez efficace. La fonction concTwoStrings construit un nouvel objet string, qui est assigné à la variable string2.
#include <iostream>
#include <string>
using std::copy;
using std::cout;
using std::endl;
using std::string;
string concTwoStrings(const string& s1, const string& s2) { return s1 + s2; }
int main() {
string string1("Starting string ");
string string2 = concTwoStrings(string1, " conc two strings");
cout << "string2: " << string2 << endl;
return EXIT_SUCCESS;
}
Production:
string2: Starting string conc two strings
Utiliser la méthode append() pour concaténer deux chaînes de caractères en C++
Append est la méthode intégrée de la classe std::string. Elle offre de riches fonctionnalités, qui peuvent toutes être explorées dans son manuel page. Dans ce cas, nous l’utilisons pour concaténer une valeur de chaîne littérale à l’objet string.
#include <iostream>
#include <string>
using std::copy;
using std::cout;
using std::endl;
using std::string;
int main() {
string string("Temporary string");
string.append(" appended sequence");
cout << string << endl;
return EXIT_SUCCESS;
}
Production:
Temporary string appended sequence
La méthode append retourne un pointeur vers cet objet, ce qui permet de faire plusieurs appels de fonction enchaînés et d’ajouter plusieurs fois une variable string. Cette méthode peut également ajouter une liste de caractères d’initialisation avec la syntaxe suivante: append({ 'a', 'b', 'c', 'd'}).
#include <iostream>
#include <string>
using std::copy;
using std::cout;
using std::endl;
using std::string;
int main() {
string string1("Starting strings");
string string2("end of the string");
string1.append(" ").append(string2).append("\n");
cout << string1;
return EXIT_SUCCESS;
}
Production:
Starting string end of the string