C++-Strings sind Zeichenfolgen, die in einem char-Array gespeichert sind. Zeichenfolgen werden zum Speichern von Wörtern und Text verwendet. Sie werden auch zum Speichern von Daten wie Zahlen und anderen Arten von Informationen verwendet. Zeichenfolgen in C++ können entweder mit definiert werden std::string-Klasse oder der Zeichenarrays im C-Stil.

1. Saiten im C-Stil
Diese Zeichenfolgen werden als einfaches altes Zeichenarray gespeichert, das mit einem abgeschlossen wird Nullzeichen „ “ . Dabei handelt es sich um die Art von Zeichenfolgen, die C++ von der C-Sprache geerbt hat.
Syntax:
char str[] = 'techcodeview.com';>
Beispiel:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Ausgabe
techcodeview.com>
2. std::string-Klasse
Dies sind die neuen Arten von Zeichenfolgen, die in C++ als std::string-Klasse eingeführt werden, die in der Header-Datei definiert ist. Dies bietet viele Vorteile gegenüber herkömmlichen Zeichenfolgen im C-Stil, wie z. B. dynamische Größe, Mitgliedsfunktionen usw.
Syntax:
std::string str('techcodeview.com');> Beispiel:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Ausgabe
techcodeview.com>
Eine weitere Möglichkeit, Zeichenfolgen zu erstellen, bei denen sich dasselbe Zeichen immer wieder wiederholt.
Syntax:
std::string str(number,character);>
Beispiel:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Ausgabe:
ggggg>
Möglichkeiten zum Definieren eines Strings in C++
Strings können in C++ auf verschiedene Arten definiert werden. Auf Strings kann über die String-Klasse aus der Standardbibliothek zugegriffen werden. Zeichenarrays können auch zum Definieren von Zeichenfolgen verwendet werden. String bietet eine Vielzahl von Funktionen, z. B. Suchen und Bearbeiten, bei denen es sich um häufig verwendete Methoden handelt. Obwohl diese Methode weniger fortgeschritten ist als die String-Klasse, wird sie immer noch häufig verwendet, da sie effizienter und einfacher zu verwenden ist. Möglichkeiten zum Definieren einer Zeichenfolge in C++ sind:
- Verwendung des String-Schlüsselworts
- Verwendung von Zeichenfolgen im C-Stil
1. Verwenden eines Zeichenfolgenschlüsselworts
Es ist bequemer, eine Zeichenfolge mit dem Schlüsselwort string zu definieren, anstatt das Schlüsselwort array zu verwenden, da es einfacher zu schreiben und zu verstehen ist.
Syntax:
string s = 'techcodeview.com'; string s('techcodeview.com');> Beispiel:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Ausgabe
s = techcodeview.com str = techcodeview.com>
2. Verwendung von Zeichenfolgen im C-Stil
Verwenden von Zeichenfolgenbibliotheksfunktionen im C-Stil wie strcpy(), strcmp() und strcat() zum Definieren von Zeichenfolgen. Diese Methode ist komplexer und nicht so weit verbreitet wie die beiden anderen, kann jedoch beim Umgang mit Legacy-Code oder wenn Leistung erforderlich ist, nützlich sein.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Beispiel:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Ausgabe
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Ein weiteres Beispiel für eine Zeichenfolge im C-Stil:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Ausgabe
Your string is= Geeeks for Geeks>
So nehmen Sie String-Eingaben in C++ vor
Unter String-Eingabe versteht man das Akzeptieren eines Strings von einem Benutzer. In C++. Wir haben verschiedene Arten, Eingaben vom Benutzer entgegenzunehmen, die von der Zeichenfolge abhängen. Die gebräuchlichste Methode besteht darin, Eingaben mit entgegenzunehmen Essen Schlüsselwort mit dem Extraktionsoperator (>>) in C++. Methoden, um eine Zeichenfolge als Eingabe zu verwenden, sind:
- Essen
- getline
- Stringstream
1. Verwendung von Cin
Der einfachste Weg, eine Zeichenfolgeneingabe vorzunehmen, ist die Verwendung von Essen Befehl zusammen mit dem Stream-Extraktionsoperator (>>).
Syntax:
cin>>s;>
Beispiel:
C++
Java-Listenzeichenfolge
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Ausgabe
Enter String String is:>
Ausgabe:
Enter String techcodeview.com String is: techcodeview.com>
2. Getline verwenden
Der getline()-Funktion in C++ wird verwendet, um eine Zeichenfolge aus einem Eingabestream zu lesen. Es wird in der Header-Datei deklariert.
Syntax:
getline(cin,s);>
Beispiel:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Ausgabe
Enter String String is:>
Ausgabe:
Enter String techcodeview.com String is: techcodeview.com>
3. Stringstream verwenden
Der Stringstream-Klasse in C++ wird verwendet, um mehrere Zeichenfolgen gleichzeitig als Eingabe zu verwenden.
Syntax:
stringstream stringstream_object(string_name);>
Beispiel:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>>-Operator liest aus dem Stringstream-Objekt> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Ausgabe
techcodeview.com to the Moon>
Wie übergebe ich Strings an Funktionen?
Auf die gleiche Weise, wie wir ein Array an eine Funktion übergeben, können Zeichenfolgen in C++ als Zeichenarrays an Funktionen übergeben werden. Hier ist ein Beispielprogramm:
Beispiel:
C++
Firma vs. Unternehmen
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Ausgabe
Passed String is: techcodeview.com>
Zeiger und Strings
Zeiger in C++ sind symbolische Darstellungen von Adressen. Sie ermöglichen es Programmen, Call-by-Reference zu simulieren sowie dynamische Datenstrukturen zu erstellen und zu manipulieren. Durch die Verwendung von Zeigern können wir das erste Zeichen der Zeichenfolge ermitteln, das die Startadresse der Zeichenfolge darstellt. Wie unten gezeigt, kann über die Zeiger auf die angegebene Zeichenfolge zugegriffen und diese gedruckt werden.
Beispiel:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Ausgabe
Geeksforgeeks>
Unterschied zwischen String- und Character-Array in C++
Der Hauptunterschied zwischen einer Zeichenfolge und einem Zeichenarray besteht darin, dass Zeichenfolgen unveränderlich sind, Zeichenarrays hingegen nicht.
| Zeichenfolge | Zeichen-Array |
|---|---|
| Strings definieren Objekte, die als String-Streams dargestellt werden können. | Das Nullzeichen beendet ein Zeichenarray von Zeichen. |
| In Strings findet kein Array-Zerfall statt, da Strings als Objekte dargestellt werden. | Die Bedrohung durch Array-Zerfall ist im Fall des Zeichenarrays vorhanden |
| Eine String-Klasse stellt zahlreiche Funktionen zum Bearbeiten von Strings bereit. | Zeichenarrays bieten keine integrierten Funktionen zum Bearbeiten von Zeichenfolgen. |
| Der Speicher wird dynamisch zugewiesen. | Die Größe des Zeichenarrays muss statisch zugewiesen werden. |
Erfahren Sie mehr über die Unterschied zwischen Strings und Zeichenarrays in C++
C++-String-Funktionen
C++ bietet einige integrierte Funktionen, die zur String-Manipulation verwendet werden, wie zum Beispiel die Funktionen strcpy() und strcat() zum Kopieren und Verketten von Strings. Einige von ihnen sind:
| Funktion | Beschreibung |
|---|---|
| Länge() | Diese Funktion gibt die Länge der Zeichenfolge zurück. |
| tauschen() | Mit dieser Funktion werden die Werte von 2 Strings vertauscht. |
| Größe() | Wird verwendet, um die Größe einer Zeichenfolge zu ermitteln |
| Größe ändern() | Diese Funktion wird verwendet, um die Länge der Zeichenfolge auf die angegebene Anzahl von Zeichen zu ändern. |
| finden() | Wird verwendet, um die Zeichenfolge zu finden, die in Parametern übergeben wird |
| push_back() | Mit dieser Funktion wird das übergebene Zeichen an das Ende der Zeichenfolge verschoben |
| Pop zurück() | Mit dieser Funktion wird das letzte Zeichen aus der Zeichenfolge entfernt |
| klar() | Mit dieser Funktion werden alle Elemente der Zeichenfolge entfernt. |
| strncmp() | Diese Funktion vergleicht höchstens die ersten num Bytes der beiden übergebenen Strings. |
| strncpy() | Diese Funktion ähnelt der Funktion strcpy(), außer dass höchstens n Bytes von src kopiert werden |
| strrchr() | Diese Funktion findet das letzte Vorkommen eines Zeichens in der Zeichenfolge. |
| geknackt() | Diese Funktion hängt eine Kopie der Quellzeichenfolge an das Ende der Zielzeichenfolge an |
| finden() | Mit dieser Funktion wird nach einem bestimmten Teilstring innerhalb eines Strings gesucht und die Position des ersten Zeichens des Teilstrings zurückgegeben. |
| ersetzen() | Diese Funktion wird verwendet, um jedes Element im Bereich [erstes, letztes], das dem alten Wert entspricht, durch einen neuen Wert zu ersetzen. |
| substr() | Mit dieser Funktion wird aus einer gegebenen Zeichenfolge eine Teilzeichenfolge erstellt. |
| vergleichen() | Diese Funktion dient zum Vergleich zweier Zeichenfolgen und gibt das Ergebnis in Form einer Ganzzahl zurück. |
| löschen() | Diese Funktion wird verwendet, um einen bestimmten Teil einer Zeichenfolge zu entfernen. |
C++-Strings-Iteratorfunktionen
In C++ integrierte String-Iterator-Funktionen bieten dem Programmierer eine einfache Möglichkeit, String-Elemente zu ändern und zu durchlaufen. Diese Funktionen sind:
| Funktionen | Beschreibung |
|---|---|
| beginnen() | Diese Funktion gibt einen Iterator zurück, der auf den Anfang der Zeichenfolge zeigt. |
| Ende() | Diese Funktion gibt einen Iterator zurück, der auf das Ende der Zeichenfolge zeigt. |
| rfind() | Mit dieser Funktion wird das letzte Vorkommen der Zeichenfolge ermittelt. |
| rbegin() | Diese Funktion gibt einen umgekehrten Iterator zurück, der auf das Ende der Zeichenfolge zeigt. |
| machen() | Diese Funktion gibt einen umgekehrten Iterator zurück, der auf den Anfang der Zeichenfolge zeigt. |
| cbegin() | Diese Funktion gibt einen const_iterator zurück, der auf den Anfang der Zeichenfolge zeigt. |
| ein paar() | Diese Funktion gibt einen const_iterator zurück, der auf das Ende der Zeichenfolge zeigt. |
| crbegin() | Diese Funktion gibt einen const_reverse_iterator zurück, der auf das Ende der Zeichenfolge zeigt. |
| crend() | Diese Funktion gibt einen const_reverse_iterator zurück, der auf den Anfang der Zeichenfolge zeigt. |
Beispiel:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Ausgabe
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
String-Kapazitätsfunktionen
In C++ werden String-Kapazitätsfunktionen verwendet, um die String-Größe und -Kapazität zu verwalten. Zu den Hauptfunktionen der Kapazität gehören:
| Funktion | Beschreibung |
|---|---|
| Länge() | Diese Funktion wird verwendet, um die Größe der Zeichenfolge zurückzugeben |
| Kapazität() | Diese Funktion gibt die Kapazität zurück, die dem String vom Compiler zugewiesen wird |
| Größe ändern() | Mit dieser Funktion können wir die Stringgröße erhöhen oder verringern |
| schrumpfen bis es passt() | Diese Funktion verringert die Kapazität und gleicht sie dem Minimum an. |
Beispiel:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Ausgabe
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
Abschließend erklärt dieser Artikel, wie Strings in C++ mithilfe von Zeichenarrays und String-Klassen definiert werden können. Die String-Klasse bietet erweiterte Funktionen, während das Zeichenarray grundlegende Funktionen bietet, aber effizient und einfach zu verwenden ist. In diesem Artikel haben wir auch die verschiedenen Methoden besprochen, um Eingaben vom Benutzer entgegenzunehmen.
Weitere Informationen zur Klasse std::string finden Sie im Artikel – std::string-Klasse in C++