Maison > développement back-end > C++ > Comment ajouter correctement un entier à une chaîne en C ?

Comment ajouter correctement un entier à une chaîne en C ?

Mary-Kate Olsen
Libérer: 2024-11-11 17:08:02
original
931 Les gens l'ont consulté

How to Correctly Append an Integer to a String in C  ?

Ajouter un entier à une chaîne en C

La méthode std::string::append() en C est utilisée pour ajouter un séquence de caractères ou chaîne à la chaîne existante. Cependant, il est essentiel de comprendre son comportement pour éviter les erreurs.

Considérez l'extrait de code suivant :

std::string query;
int ClientID = 666;
query = "select logged from login where id = ";
query.append((char *)ClientID);
Copier après la connexion

Ce code tente d'ajouter l'entier ClientID à la chaîne de requête. Cependant, il génère un échec d’assertion de débogage. La raison en est que std::string::append() attend un argument char* qui pointe vers une chaîne terminée par un caractère nul.

Solutions :

Pour ajouter correctement un entier en chaîne, plusieurs approches sont disponibles :

  • Utilisation std::ostringstream :
#include <sstream>

std::ostringstream s;
s << "select logged from login where id = " << ClientID;
std::string query(s.str());
Copier après la connexion
  • Utilisation de std::to_string (C 11 et versions ultérieures) :
std::string query("select logged from login where id = " +
                  std::to_string(ClientID));
Copier après la connexion
  • Utilisation boost::lexical_cast:
#include <boost/lexical_cast.hpp>

std::string query("select logged from login where id = " +
                  boost::lexical_cast<std::string>(ClientID));
Copier après la connexion

Ces méthodes garantissent que l'entier est correctement converti en chaîne avant de l'ajouter à la chaîne de requête, évitant ainsi l'échec de l'assertion de débogage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal