Anhängen einer Ganzzahl an einen String in C
Die Methode std::string::append() in C wird zum Anhängen eines verwendet Zeichenfolge oder Zeichenfolge in die vorhandene Zeichenfolge ein. Es ist jedoch wichtig, sein Verhalten zu verstehen, um Fehler zu vermeiden.
Beachten Sie den folgenden Codeausschnitt:
std::string query; int ClientID = 666; query = "select logged from login where id = "; query.append((char *)ClientID);
Dieser Code versucht, die ClientID-Ganzzahl an die Abfragezeichenfolge anzuhängen. Es wird jedoch ein Fehler bei der Debug-Assertion ausgegeben. Der Grund dafür ist, dass std::string::append() ein char*-Argument erwartet, das auf eine nullterminierte Zeichenfolge zeigt.
Lösungen:
So korrekt anhängen Um eine Ganzzahl in eine Zeichenfolge umzuwandeln, stehen mehrere Ansätze zur Verfügung:
#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));
Diese Methoden stellen sicher, dass die Ganzzahl korrekt in eine Zeichenfolge konvertiert wird, bevor sie an die Abfragezeichenfolge angehängt wird, und vermeiden so den Debug Assertion Failure.
Das obige ist der detaillierte Inhalt vonWie hängt man in C eine Ganzzahl korrekt an einen String an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!