Wie man int in string in C++ konvertiert: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

„Int to string“ in C++: Warum quält diese Frage selbst erfahrene Entwickler?

\n

Stellen Sie sich vor: Sie schreiben ein Programm in C++, das eine Zahl auf dem Bildschirm ausgeben und dann Text hinzufügen soll – zum Beispiel „Ergebnis: 42“. Oder Sie müssen eine Benutzer-ID (int) als String in eine JSON-Datei speichern. Es scheint einfach, oder? Doch hier ist der Haken: In C++ können Sie nicht einfach string s = 42; schreiben. Der Compiler gibt einen Fehler aus.

\n

Die Frage „How can I convert int to string in C++?“ ist eine der beliebtesten auf Stack Overflow (Hunderttausende Aufrufe). Und das aus gutem Grund. Anders als in Python oder JavaScript, wo alles „magisch konvertiert wird“, erfordert C++ eine explizite Typumwandlung. Aber keine Sorge! In diesem Artikel behandeln wir 5 bewährte Methoden, von der Klassik bis zum modernen C++20. Sie erfahren, welche Methode schneller ist, welche bequemer und wann Sie welche verwenden sollten.

\n

Los geht‘s!

\n\n

Methode Nr. 1: std::to_string – modern und einfach (C++11 und neuer)

\n

Seit C++11 gibt es in der Standardbibliothek die Funktion std::to_string. Dies ist die einfachste und lesbarste Methode zur Konvertierung von int in string in C++.

\n
#include <iostream>\n#include <string>\n\nint main() {\n    int number = 2024;\n    std::string str = std::to_string(number);\n    std::cout << "String: " << str << std::endl;  // Ausgabe: String: 2024\n    return 0;\n}
\n

Vorteile:

\n
    \n
  • Kurz und verständlich – eine Codezeile
  • \n
  • Unterstützt int, long, float, double und andere numerische Typen
  • \n
  • Keine zusätzlichen Bibliotheken erforderlich (außer <string>)
  • \n
\n

Nachteile:

\n
    \n
  • Keine Kontrolle über die Formatierung (Anzahl der Stellen, führende Nullen)
  • \n
  • Langsamer als Low-Level-Methoden bei Millionen von Aufrufen
  • \n
\n

Wann verwenden: In 90 % der Fälle. Für alltägliche Aufgaben ohne spezifisches Ausgabeformat ist std::to_string die ideale Wahl.

\n\n

Methode Nr. 2: std::stringstream – flexibel wie ein Schweizer Taschenmesser

\n

Wenn Sie nicht nur eine Zahl konvertieren, sondern auch formatieren möchten (Leerzeichen hinzufügen, Zahlensystem ändern), hilft std::stringstream. Diese Klasse aus der Bibliothek <sstream> funktioniert wie ein „intelligenter String“.

\n
#include <iostream>\n#include <sstream>\n#include <string>\n\nint main() {\n    int number = 255;\n    std::stringstream ss;\n    ss << "Wert: " << number << " (hexadezimal: " << std::hex << number << ")";\n    std::string result = ss.str();\n    std::cout << result << std::endl;\n    // Ausgabe: Wert: 255 (hexadezimal: ff)\n    return 0;\n}
\n

Vorteile:

\n
    \n
  • Volle Kontrolle über die Formatierung (std::hex, std::oct, std::setw, std::setprecision)
  • Ermöglicht dynamische Verkettung von Strings und Zahlen
\n

Nachteile:

\n
    \n
  • Langsamer als std::to_string aufgrund der Erstellung eines stringstream-Objekts
  • Erfordert mehr Code für einfache Konvertierungen
\n

Wann verwenden: Wenn eine komplexe Formatierung oder Umwandlung in verschiedene Zahlensysteme erforderlich ist.

\n\n

Methode Nr. 3: sprintf und snprintf – die altbewährte Methode aus C

\n

Eine alte, aber zuverlässige Methode aus der Sprache C. Die Funktion sprintf schreibt einen formatierten String in ein char-Array. In C++ kann sie ebenfalls verwendet werden, jedoch ist Vorsicht vor Pufferüberläufen geboten.

\n
#include <iostream>\n#include <cstdio>  // für sprintf\n#include <cstring> // für strlen\n\nint main() {\n    int number = 42;\n    char buffer[50];\n    sprintf(buffer, "%d", number);\n    std::string str(buffer);\n    std::cout << "Ergebnis: " << str << std::endl;\n    return 0;\n}
\n

Wichtig:

Blogs

Buchempfehlungen