Wie man Int in ein Char-Array in C++ konvertiert
- 
          
            Verwendung der Funktion 
std::sprintfzur Konvertierung vonintinchar* - 
          
            Kombination von 
to_string()undc_str()Methoden zur Umwandlung vonintinchar* - 
          
            Verwendung von 
std::stringstreamKlassenmethoden für die Konvertierung - 
          
            Verwendung der Funktion 
std::to_charszur Konvertierung vonintinchar* 
In diesem Artikel wird erklärt, wie man int mit verschiedenen Methoden in ein char array (char*) konvertiert.
In den folgenden Beispielen gehen wir davon aus, die Ausgabe der Konvertierung im Speicherpuffer zu speichern, und zu Überprüfungszwecken werden wir das Ergebnis mit std::printf ausgeben.
Verwendung der Funktion std::sprintf zur Konvertierung von int in char*
Zuerst müssen wir Platz für die Speicherung einer einzelnen int-Variablen, die wir konvertieren wollen, in einem char-Puffer reservieren. Beachten Sie, dass das folgende Beispiel die maximale Länge MAX_DIGITS für ganzzahlige Daten definiert. Um die Länge des Zeichenpuffers zu berechnen, fügen wir sizeof(char) hinzu, weil die Funktion sprintf eine Zeichenkette schreibt, die \0 Byte automatisch am Zielort beendet. Daher sollten wir genügend Platz für diesen Puffer reservieren.
#include <iostream>
#define MAX_DIGITS 10
int main() {
  int number = 1234;
  char num_char[MAX_DIGITS + sizeof(char)];
  std::sprintf(num_char, "%d", number);
  std::printf("num_char: %s \n", num_char);
  return 0;
}
Ausgabe:
num_char: 1234
Beachten Sie, dass der Aufruf von sprintf mit überlappenden Quell- und Zielpuffern (z. B. sprintf(buf, "%s some text to add", buf)) nicht empfohlen wird, da er ein undefiniertes Verhalten hat und je nach Compiler falsche Ergebnisse liefert.
Kombination von to_string() und c_str() Methoden zur Umwandlung von int in char*
    
Diese Version verwendet für die Konvertierung Methoden der Klasse std::string, was sie zu einer weitaus sichereren Version macht als die Behandlung von sprintf, wie im vorherigen Beispiel gezeigt.
#include <iostream>
int main() {
  int number = 1234;
  std::string tmp = std::to_string(number);
  char const *num_char = tmp.c_str();
  printf("num_char: %s \n", num_char);
  return 0;
}
Verwendung von std::stringstream Klassenmethoden für die Konvertierung
Diese Methode wird mit der Klasse std::stringstream implementiert. Nämlich erzeugen wir einen temporären, auf Zeichenketten basierenden Datenstrom, in dem wir int Daten speichern, dann ein Zeichenkettenobjekt durch die str Methode zurückgeben und schließlich c_str aufrufen, um die Konvertierung durchzuführen.
#include <iostream>
#include <sstream>
int main() {
  int number = 1234;
  std::stringstream tmp;
  tmp << number;
  char const *num_char = tmp.str().c_str();
  printf("num_char: %s \n", num_char);
  ;
  return 0;
}
Verwendung der Funktion std::to_chars zur Konvertierung von int in char*
Diese Version ist eine reine Funktion im C++-Stil, die in C++17 hinzugefügt und in der Kopfzeile <charconv> definiert wurde. Auf der positiven Seite bietet diese Methode Operationen auf Bereiche, was in bestimmten Szenarien die flexibelste Lösung sein könnte.
#include <charconv>
#include <iostream>
#define MAX_DIGITS 10
int main() {
  int number = 1234;
  char num_char[MAX_DIGITS + sizeof(char)];
  std::to_chars(num_char, num_char + MAX_DIGITS, number);
  std::printf("num_char: %s \n", num_char);
  return 0;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ Integer
- Geben Sie eine 64-Bit-Ganzzahl in C++ an
 - Große ganze Zahl in C++
 - Verwendung von 128-Bit-Ganzzahlen in C++
 - Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen ganzzahligen Ausdrücken in C++
 - Makroausdrücke INT_MAX und INT_MIN in C++
 - Überprüfen Sie, ob die Eingabe in C++ Integer ist
 
Verwandter Artikel - C++ Char
- Anzahl der Vorkommen eines Zeichens in String C++
 - ASCII-Wert von Char in C++ abrufen
 - Wie man ASCII in C++ in Zeichen konvertiert
 - Wie konvertiert man ein Char-Array in eine Zeichenkette in C++
 - Wie konvertiert man ein Char-Array nach Int in C++
 - Wie konvertiert man Zeichenketten in C++ in ein Char-Array
 
