"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment concaténer des littéraux de chaîne et des littéraux de caractères en C++ ?

Comment concaténer des littéraux de chaîne et des littéraux de caractères en C++ ?

Publié le 2024-11-03
Parcourir:807

How to Concatenate String Literals and Character Literals in C  ?

Littéraux de chaîne et littéraux de caractères en C

Lors de la tentative de concaténation de littéraux de chaîne avec des littéraux de caractères en C , un comportement inattendu peut se produire. Par exemple :

string str = "ab"   'c';
cout 

Ce code produit une sortie imprévisible car l'opérateur " " n'est pas défini pour combiner les littéraux de chaîne et les littéraux de caractères. Au lieu de cela, le compilateur traite la chaîne littérale comme une chaîne de style C (un pointeur de caractère const) et ajoute la valeur int promue du littéral de caractère à l'adresse de la chaîne littérale. Cela entraîne un comportement indéfini.

Pour éviter ce problème, convertissez explicitement le caractère littéral en chaîne avant la concaténation :

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

Vous pouvez également utiliser la concaténation pour obtenir le résultat souhaité :

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

Dans le deuxième extrait de code, l'objet chaîne a un opérateur " " surchargé qui effectue la concaténation prévue.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3