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

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

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());
  • Mit std::to_string (C 11 und höher):
std::string query("select logged from login where id = " +
                  std::to_string(ClientID));
  • Mit boost::lexical_cast:
#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!

Stellungnahme:
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