logo

String-Funktionen in C++

Eine Zeichenfolge wird als Array von Zeichen bezeichnet. In C++ wird ein Stream/eine Folge von Zeichen in einem char-Array gespeichert. C++ enthält die Klasse std::string, die zur Darstellung von Zeichenfolgen verwendet wird. Es ist einer der grundlegendsten Datentypen in C++ und verfügt über eine Vielzahl integrierter Funktionen. In diesem Artikel werden die Funktionen von String-Berechnungen untersucht.

Was ist std::string?

Der std::string ist seit C++98 eine Klasse in C++. Diese Klasse ist die Standarddarstellung für eine Textzeichenfolge. Es enthält einige typische String-Operationen wie Suchen, Ersetzen, Verketten, Vergleichen usw. Es ist in vorhanden Header-Datei.



Deklaration und Initialisierung von String

std::string company = 'techcodeview.com!';>

Häufig verwendete String-Funktionen in C++

Die Klasse std::string enthält Funktionen zur Bereitstellung einiger gängiger String-Operationen. Die folgende Tabelle enthält einige der am häufigsten verwendeten Funktionen in C++:

Ja Nein.

Kategorie



Funktionen und Operatoren

Funktionalität

1.



Wie bekomme ich eine Wildtaube auf Android?
String-Länge

length() oder size()

Es wird die Länge der Zeichenfolge zurückgegeben.

2.

Auf Charaktere zugreifen

Indizierung (mithilfe von array[index])

Zugriff auf einzelne Zeichen mithilfe der Array-Indizierung.

bei()

Wird verwendet, um auf ein Zeichen an einem angegebenen Index zuzugreifen.

3.

Anhängen und Verketten von Zeichenfolgen

+ Betreiber

Der +-Operator wird verwendet, um zwei Zeichenfolgen zu verketten.

append()

Die Funktion append() fügt eine Zeichenfolge am Ende einer anderen hinzu.

4.

String-Vergleich

== Operator

Sie können Zeichenfolgen mit dem Operator == vergleichen.

vergleichen()

Die Funktion „compare()“ gibt einen ganzzahligen Wert zurück, der das Vergleichsergebnis angibt.

5.

Teilzeichenfolgen

substr()

Verwenden Sie die Funktion substr(), um einen Teilstring aus einem String zu extrahieren.

6.

Suchen

finden()

Die Funktion find() gibt die Position des ersten Vorkommens eines Teilstrings zurück.

7.

Strings ändern

ersetzen()

Verwenden Sie die Funktion replace(), um einen Teil der Zeichenfolge zu ändern.

einfügen()

Die Funktion insert() fügt an einer angegebenen Position einen Teilstring hinzu.

löschen()

Verwenden Sie die Funktion erase(), um einen Teil der Zeichenfolge zu entfernen.

8.

Konvertierung

c_str()

Um einen String im C-Stil aus einem std::string zu erhalten, können Sie die Funktion c_str() verwenden.

Notiz: Die oben genannten Funktionen funktionieren nur für Zeichenfolgen im C++-Stil (std::string-Objekte), nicht für Zeichenfolgen im C-Stil (Zeichenarray).

1. String-Länge – length() oder size()

Mit beiden können wir die Länge der Zeichenfolge (Anzahl der Zeichen) ermitteln length() oder size() Funktion der Klasse std::string.

Syntax

string_object. size() or string_object. length()>

Parameter

  • Diese Funktion benötigt keine Parameter.

Rückgabewert

  • Diese Funktion gibt die Anzahl der Zeichen im String-Objekt zurück.

Beispiel

std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>

Es wird die Länge der Zeichenfolge zurückgegeben Text das ist 13.

2. Auf Zeichen zugreifen – at()

Im Allgemeinen können wir mit dem auf das Zeichen einer Zeichenfolge zugreifen [] Array-Indexoperator und Indizierung. Aber std::string hat auch eine Funktion mit dem Namen bei() mit dem auf die Zeichen der Zeichenfolge zugegriffen werden kann.

Syntax

string_object. at( index );>

Parameter

    Index: Stellt die Position des Zeichens in der Zeichenfolge dar.

Rückgabewert

  • Diese Funktion gibt das am vorhandene Zeichen zurück Index.

Beispiel

std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>

Der std::cout gibt K auf der Konsole aus, da es sich um das Zeichen handelt, das an Index 3 vorhanden ist.

3. Strings verketten – append() oder + Operator

Wir können Zeichenfolgen in C++ mit zwei Methoden verketten:

1. + Betreiber

Der +-Operator wird in der Klasse std::string überladen, um eine Zeichenfolgenverkettung durchzuführen.

Syntax

string_object1 + string_object2>

Beispiel

std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>

Der +-Operator wird verwendet, um zwei Zeichenfolgen zu verketten. Der vollständige Name der Zeichenfolge lautet techcodeview.com.

2. append()

Die Funktion append() ist eine weitere Memberfunktion zum Verketten zweier Zeichenfolgen.

Syntax

string_object1. append ( string2 )>

Parameter

    string2: Diese Funktion übernimmt den anzuhängenden String als Parameter. Es kann sich um eine Zeichenfolge im C- oder C++-Stil handeln.

Rückgabewert

  • Verweis auf die letzte Zeichenfolge.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Die Funktion append() fügt eine Zeichenfolge am Ende einer anderen hinzu.

4. String-Vergleich – Compare() oder == Operator

Genau wie die Verkettung können wir den String-Vergleich mit zwei Methoden durchführen:

1. == Operator

Der Gleichheitsoperator kann zum Vergleichen der beiden Zeichenfolgen verwendet werden, da er für diese Operation in der Klasse std::string überladen ist.

Syntax

string_object1 == string_object2>

Das wird wiederkommen WAHR wenn beide Zeichenfolgen gleich sind, andernfalls wird zurückgegeben FALSCH.

Beispiel

std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }>

Hier werden Zeichenfolgen, die nicht gleich sind, ausgegeben, da der Operator == zurückgegeben wird FALSCH.

2. vergleichen()

Die Funktion „compare()“ ist eine Mitgliedsfunktion der Klasse std::string, die zum Vergleichen zweier Zeichenfolgen verwendet werden kann.

Syntax

atoi c
str1. compare( str2 );>

Parameter

    str2: Dies ist die zu vergleichende Zeichenfolge. Es kann sich um eine Zeichenfolge im C- oder C++-Stil handeln.

Rückgabewert

  • Wenn die Zeichenfolgen gleich sind, kehren Sie zurück null.
  • Wenn str1 größer als str2 ist, Rückgabewert >0
  • Wenn str2 größer als str1 ist, Rückgabewert <0

Beispiel

string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>

Das Ergebnis enthält einen Wert kleiner als Null, da str2 größer als str1 ist.

Wir können den Teilstring von str2 auch mit der Vergleichsfunktion() vergleichen:

str1.compare(position, length, str2);>

Wo,

    Position: Position der ersten Zeichenteilzeichenfolge. Länge: Länge des Teilstrings. str2: Zu vergleichendes String-Objekt.

5. Suchen – find()

Wir können das nutzen finden() Funktion der Klasse std::string, um zu prüfen, ob ein bestimmtes Zeichen oder ein Teilstring im String oder einem Teil des Strings vorhanden ist.

Syntax von find()

str1.find(var);>

Parameter

    var: Es kann sich um eine Zeichenfolge im C-Stil, eine Zeichenfolge im C++-Stil oder um ein Zeichen handeln, das in der Zeichenfolge gesucht werden soll.

Rückgabewert

  • Es gibt den Zeiger auf das erste Vorkommen des Zeichens oder einer Teilzeichenfolge in der Zeichenfolge zurück.

Beispiel

std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring>

Die Positionsvariable enthält 4, was den Beginn des ersten Vorkommens der Zeichenfolge darstellt. Programmierung im Zeichenfolgentext.

6. Substring generieren – substr()

Wir können das nutzen substr()-Funktion um einen Teil des Strings als neues String-Objekt zu generieren. Es ist eine Mitgliedsfunktion der Klasse std::string.

Syntax von substr() in C

str1. substr ( start, end );>

Parameter

    start: Startposition des zu generierenden Teilstrings. end: Ende des zu generierenden Teilstrings.

Rückgabetyp

  • Es gibt das neu erstellte String-Objekt zurück.

Beispiel

std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>

Im obigen Beispiel. Die sub string enthält die Welt.

Strings ändern

Mit der folgenden Funktion können wir die aktuelle Zeichenfolge ändern.

1. insert()

Mit der Funktion insert() können wir nicht nur eine Zeichenfolge hinzufügen, sondern sie auch an der angegebenen Position hinzufügen. Es ist auch eine Mitgliedsfunktion der Klasse std::string.

Syntax

str1. insert (index, str2);>

Parameter

    str2: einzufügende Zeichenfolge. Index: Position, an der die neue Zeichenfolge eingefügt werden soll

Rückgabetyp

  • Verweis auf str1.

Beispiel

std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>

2. ersetzen()

Die Funktion replace() ersetzt den Teil der Zeichenfolge durch die angegebene andere Zeichenfolge. Im Gegensatz zum Einfügen werden die Zeichen in dem Teil entfernt, in den die neue Zeichenfolge eingefügt werden soll.

Syntax

str1. replace ( index, size, str2 );>

Parameter

    index: Index, wo mit dem Ersetzen der neuen Zeichenfolge begonnen werden soll. Größe: Länge des Teils der Zeichenfolge, der ersetzt werden soll. str2: neue Zeichenfolge, die eingefügt werden soll.

Rückgabetyp

  • Verweis auf str1.

Beispiel

std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>

3. löschen()

Die Funktion erase() ist eine Mitgliedsfunktion der Klasse std::string, die zum Entfernen eines Zeichens oder eines Teils der Zeichenfolge verwendet wird.

Syntax

str1 .erase( start, end);>

Parameter

    start: Ausgangsposition. end: Endposition.

Rückgabetyp

  • Verweis auf str1.

Beispiel

std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>

Konvertieren Sie std::string in C-String – c_str)_

Die Funktion c_str() ist eine Mitgliedsfunktion, die verwendet wird, um die Zeichenfolge im C++-Stil, d. h. std::string-Objekte, in eine Zeichenfolge im C-Stil, d. h. ein Array von Zeichen, zu konvertieren.

Syntax

str1.c_str()>

Parameter

  • Diese Funktion benötigt keine Parameter.

Rückgabewert

  • Zeiger auf das entsprechende Zeichenarray.

Beispiel

std::string str = 'C++'; const char* cstr = str.c_str()>

Beispiel für String-Funktionen in C++

Der folgende Code demonstriert die Verwendung der oben angegebenen Zeichenfolgenfunktionen:

C++




// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> Name;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }>

>

>

Ausgabe

Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>