C++ Strings meistern: C-Style vs. std::string
C++ bietet zwei String-Repräsentationen:
- C-Style Character String (Null-terminiertes Char-Array)
string-Klasse (Standard C++)
C-Style Character String
Ursprung in C, wird in C++ weiter unterstützt. Ein eindimensionales Char-Array, terminiert durch '\0' (Null-Zeichen).
Deklaration/Initialisierung für „Hello“:
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Kürzer (Compiler fügt '\0' automatisch an):
char greeting[] = "Hello";
Ausgabe
#include <iostream>
using namespace std;
int main() {
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
cout << "Greeting message: " << greeting << endl;
return 0;
}
Ausgabe: Greeting message: Hello
Wichtige C-String-Funktionen (<cstring>)
| Nr. | Funktion & Zweck |
|---|---|
| 1 | strcpy(s1, s2) – Kopiert s2 nach s1 |
| 2 | strcat(s1, s2) – Hängt s2 an s1 an |
| 3 | strlen(s1) – Länge von s1 |
| 4 | strcmp(s1, s2) – Vergleich: 0=gleich, <0=s1<s2, >0=s1>s2 |
| 5 | strchr(s1, ch) – Pointer auf erstes Vorkommen von ch in s1 |
| 6 | strstr(s1, s2) – Pointer auf erstes Vorkommen von s2 in s1 |
Beispiel
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str1[10] = "Hello";
char str2[10] = "World";
char str3[10];
int len;
strcpy(str3, str1);
cout << "strcpy: " << str3 << endl;
strcat(str1, str2);
cout << "strcat: " << str1 << endl;
len = strlen(str1);
cout << "strlen: " << len << endl;
return 0;
}
Ausgabe:
strcpy: Hello
strcat: HelloWorld
strlen: 10
Die string-Klasse (Standard C++)
<string> bietet alle obigen Operationen plus deutlich mehr Funktionalität.
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "Hello";
string str2 = "World";
string str3;
int len;
str3 = str1;
cout << "str3: " << str3 << endl;
str3 = str1 + str2;
cout << "str1+str2: " << str3 << endl;
len = str3.size();
cout << "str3.size(): " << len << endl;
return 0;
}
Ausgabe:
str3: Hello
str1+str2: HelloWorld
str3.size(): 10
Empfehlung: In modernem C++ std::string bevorzugen – sicherer, komfortabler, weniger fehleranfällig.
C Sprache
- C# Strings meistern: Grundlagen, Operationen & fortgeschrittene Techniken
- C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
- C++-Kommentare: Best Practices für lesbaren, wartbaren Code
- C++ Klassentemplates meistern: Ein praktischer Leitfaden
- Java Strings meistern: Erstellung, Methoden und Best Practices
- String-Repräsentationen in Java Enums meistern
- C++ Variablen und Datentypen: Experten‑Guide zu int, double, char, string, bool
- C++ String‑Funktionen meistern: strcpy, strcat, strlen, strcmp – Praxisbeispiele
- C Strings einfach gemacht: Deklaration, Ein- & Ausgabe, Bibliotheksfunktionen
- Java Strings Klasse: String-Erstellung & Manipulation meistern