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
Mary-Kate Olsenoriginal
2024-11-11 17:08:02889parcourir

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);

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());
  • Utilisation de std::to_string (C 11 et versions ultérieures) :
std::string query("select logged from login where id = " +
                  std::to_string(ClientID));
  • Utilisation boost::lexical_cast:
#include <boost/lexical_cast.hpp>

std::string query("select logged from login where id = " +
                  boost::lexical_cast<std::string>(ClientID));

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!

Déclaration:
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