0Pricing
C++ Academy · Lektion

Zeichenkettenkonvertierung: to_string und stoi

Konvertieren Sie mit std::to_string, std::stoi und std::stod sicher zwischen Zeichenketten und numerischen Typen

Zeichenkettenkonvertierung: to_string und stoi ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum die Umwandlung von Zeichenketten wichtig ist

Sie müssen ständig zwischen Zahlen und Text umwandeln — etwa für Benutzereingaben, Konfigurationsdateien, JSON, URLs und Protokolle.

std::to_string

std::to_string wandelt jeden integrierten numerischen Typ in eine Zeichenkette um. Dabei wird die Standardformatierung verwendet.

#include <string>

std::string a = std::to_string(42);     // "42"
std::string b = std::to_string(-7);     // "-7"
std::string c = std::to_string(3.14);   // "3.140000"

Standardformatierung von Gleitkommazahlen

to_string verwendet bei einem double sechs Nachkommastellen. Für eine präzise Kontrolle verwenden Sie std::stringstream mit std::fixed und std::setprecision oder std::format in C++20.

std::stoi: Zeichenkette in int umwandeln

Analysieren Sie eine Ganzzahl mit std::stoi. Führender Leerraum wird übersprungen, und die Analyse endet beim ersten Zeichen, das keine Ziffer ist.

int n = std::stoi("42");        // 42
int m = std::stoi("  -7abc");   // -7 (stops at 'a')

Die Endposition der Analyse auslesen

Übergeben Sie einen Zeiger, um den Index zu erhalten, an dem die Analyse beendet wurde — das ist nützlich, wenn Sie gemischte Zeichenketten analysieren.

std::string s = "42px";
size_t pos;
int n = std::stoi(s, &pos);
std::cout << pos;  // 2  (parsed "42", stopped at 'p')

Stoi löst bei ungültigen Eingaben Ausnahmen aus

Wenn keine Ziffern gefunden werden, löst stoi std::invalid_argument aus. Wenn die Zahl den Wertebereich überschreitet, wird std::out_of_range ausgelöst.

try {
    int x = std::stoi("not_a_number");
} catch (const std::invalid_argument& e) {
    std::cout << "Parse failed";
}

Zahlensysteme umwandeln

Das dritte Argument legt die Basis fest (2–36). Übergeben Sie 0, um das Zahlensystem automatisch anhand des Präfixes zu erkennen.

int hex = std::stoi("ff", nullptr, 16);    // 255
int bin = std::stoi("1010", nullptr, 2);   // 10
int auto_detect = std::stoi("0xff", nullptr, 0); // 255

stol stoll stoul stoull

Varianten für die anderen Ganzzahltypen:

  • std::stol — long
  • std::stoll — long long
  • std::stoul — unsigned long
  • std::stoull — unsigned long long

stof stod stold

Varianten für Gleitkommazahlen vom Typ float, double und long double.

double d = std::stod("3.14159");
float f = std::stof("2.71");

C++17 std::from_chars: Keine Ausnahmen

std::from_chars analysiert Eingaben, ohne Ausnahmen auszulösen. Die Funktion gibt eine Struktur mit ec (Fehlercode) und ptr (Position am Ende der Analyse) zurück — in zeitkritischen Schleifen ist sie die bevorzugte Wahl.

#include <charconv>
std::string s = "42";
int val;
auto result = std::from_chars(s.data(), s.data() + s.size(), val);
if (result.ec == std::errc{}) {
    // success
}

C++17 std::to_chars: Keine Speicherreservierung

Das Gegenstück zu from_chars: Schreiben Sie eine Zahl in einen Puffer, ohne Speicher zu reservieren. Dies ist die schnellste verfügbare Umwandlung in der Standardbibliothek.

Kurze Überprüfung

Welche Ausnahme löst std::stoi("abc") aus?

Zusammenfassung

std::to_string wandelt Zahlen in Zeichenketten um; std::stoi und verwandte Funktionen analysieren Zeichenketten als Zahlen. Beide lösen bei einem Fehler eine Ausnahme aus — verwenden Sie std::from_chars für eine leistungsstarke Analyse ohne Ausnahmen.

Häufig gestellte Fragen

Ist die Lektion „Zeichenkettenkonvertierung: to_string und stoi“ kostenlos?

Ja — der vollständige Text von „Zeichenkettenkonvertierung: to_string und stoi“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Zeichenkettenkonvertierung: to_string und stoi“?

Konvertieren Sie mit std::to_string, std::stoi und std::stod sicher zwischen Zeichenketten und numerischen Typen Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Zeichenkettenkonvertierung: to_string und stoi“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. std::string und C-Style-Zeichenarrays im Vergleich
  2. Zeichenkettenoperationen: concat, substr, find, replace
  3. stringstream zur Textanalyse
  4. Zeichenkettenkonvertierung: to_string und stoi
← Zurück zu C++ Academy