Maison >développement back-end >C++ >Comment ajouter correctement un entier à une chaîne en 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 :
#include <sstream> std::ostringstream s; s << "select logged from login where id = " << ClientID; std::string query(s.str());
std::string query("select logged from login where id = " + std::to_string(ClientID));
#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!