Heim > Backend-Entwicklung > C++ > Wie hängt man in C eine Ganzzahl korrekt an einen String an?

Wie hängt man in C eine Ganzzahl korrekt an einen String an?

Mary-Kate Olsen
Freigeben: 2024-11-11 17:08:02
Original
929 Leute haben es durchsucht

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

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);
Nach dem Login kopieren

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:

  • Verwenden von std::ostringstream:
#include <sstream>

std::ostringstream s;
s << "select logged from login where id = " << ClientID;
std::string query(s.str());
Nach dem Login kopieren
  • Mit std::to_string (C 11 und höher):
std::string query("select logged from login where id = " +
                  std::to_string(ClientID));
Nach dem Login kopieren
  • Mit boost::lexical_cast:
#include <boost/lexical_cast.hpp>

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

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage