C++ Academy · Lektion

std::string und C-Style-Zeichenarrays im Vergleich

Vergleichen Sie das moderne std::string mit älteren nullterminierten Zeichenarrays und entscheiden Sie, wann welches eingesetzt wird

Lektion 1 von 413 Schritte

std::string und C-Style-Zeichenarrays im Vergleich ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.

Zwei Arten, Text zu speichern

C++ übernimmt C-Strings — nullterminierte char-Arrays — und ergänzt sie um std::string aus der Standardbibliothek. Verwenden Sie fast immer std::string.

C-Strings

Ein C-String ist eine Folge von char-Zeichen, die mit einem Nullbyte '\0' endet. Funktionen wie strlen durchlaufen das Array, bis sie die Null finden.

const char* greeting = "Hello";
// Memory: H, e, l, l, o, \0  (6 bytes)

#include <cstring>
std::cout << std::strlen(greeting);  // 5

std::string

std::string verwaltet seinen Speicher selbst und wächst bei Bedarf. Erzeugen Sie es wie jeden anderen Typ.

#include <string>
std::string name = "Ada";
name += " Lovelace";
std::cout << name;  // Ada Lovelace

Größe und Länge

std::string::size() und length() sind Synonyme und geben die Anzahl der Zeichen zurück (der Nullterminator wird nicht mitgezählt).

std::string s = "hello";
std::cout << s.size();   // 5
std::cout << s.length(); // 5

Zugriff über Indizes

Lesen oder schreiben Sie Zeichen mit [] oder at(). Anders als [] löst at() eine Ausnahme aus, wenn der Index außerhalb des gültigen Bereichs liegt.

std::string s = "cat";
char first = s[0];        // 'c'
char last  = s.at(2);     // 't'
// s.at(10) throws std::out_of_range

Leere Strings

Verwenden Sie empty() statt size() == 0. Das ist übersichtlicher und genauso schnell.

Wann Sie const char* verwenden sollten

Verwenden Sie einen C-String, wenn:

  • Sie mit C-Bibliotheken oder Betriebssystem-APIs interagieren
  • Sie mit Stringliteralen arbeiten, die sich nie ändern
  • Sie ein eingebettetes System verwenden, auf dem die Standardbibliothek nicht verfügbar ist

Zwischen beiden konvertieren

Ermitteln Sie mit .c_str() einen C-String aus einem std::string. Erzeugen Sie einen std::string direkt aus einem const char*.

std::string s = "Hello";
const char* c = s.c_str();

const char* literal = "world";
std::string s2(literal);

Stringliterale sind const char[]

Ein Stringliteral wie "hi" hat den Typ const char[3] (einschließlich des Nullterminators). Es befindet sich in einem schreibgeschützten Speicherbereich.

Raw-Stringliterale

Stellen Sie R"(...)" voran, um die Verarbeitung von Escape-Sequenzen zu überspringen. Das ist nützlich für reguläre Ausdrücke und Dateipfade.

std::string regex = R"(\d+\.\d{2})";
std::string path  = R"(C:\Users\Ada)";

Über einen std::string iterieren

Strings sind Container. Durchlaufen Sie sie mit einer bereichsbasierten for-Schleife, Indizes oder Iteratoren.

std::string s = "abc";
for (char c : s) std::cout << c << " ";  // a b c

Kurztest

Welche Methode von std::string löst eine Ausnahme aus, wenn der Index außerhalb des gültigen Bereichs liegt?

Zusammenfassung

Bevorzugen Sie std::string für verwalteten Text. Verwenden Sie const char* für Literale und die Interoperabilität mit C-APIs. Konvertieren Sie zwischen beiden mit .c_str() und durch direkte Erzeugung.

Kostenlos starten

Lerne C++ mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
51
Lektionen
203

Häufig gestellte Fragen

Ist die Lektion „std::string und C-Style-Zeichenarrays im Vergleich“ kostenlos?

Ja — der vollständige Text von „std::string und C-Style-Zeichenarrays im Vergleich“ 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 „std::string und C-Style-Zeichenarrays im Vergleich“?

Vergleichen Sie das moderne std::string mit älteren nullterminierten Zeichenarrays und entscheiden Sie, wann welches eingesetzt wird 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 1 von 4.

Wie lange dauert die Lektion „std::string und C-Style-Zeichenarrays im Vergleich“?

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