C++ Zeichenfolgenfunktion: strcpy(), strcat(), strlen(), strcmp() Beispiel
Was ist eine Zeichenfolge?
Ein String ist eine Folge von Zeichen. C++ string ist ein Objekt der Klasse std::string. Die Zeichen sind gespeicherte Bytefolgen, wobei der Zugriff auf ein einzelnes Zeichenbyte erlaubt ist.
C++ Zeichenfolgen weisen Speicher dynamisch zu. Bei Bedarf kann der Zeichenfolge während der Laufzeit mehr Speicher zugewiesen werden. Da keine Speichervorzuweisung erfolgt, wird kein Speicher verschwendet. Wir können verschiedene Operationen an Zeichenfolgen durchführen, darunter Vergleiche, Verkettungen, Konvertierungen usw.
Strings deklarieren
C++ unterstützt zwei Arten von Zeichenfolgendeklarationen:
- Zeichenfolge im C-Stil
- String-Klassentyp
Zeichenfolge im C-Stil
Diese Art der String-Deklaration wurde eingeführt Programmiersprache C. C++ unterstützt dies weiterhin. Es handelt sich einfach um ein eindimensionales Array von Zeichen, das mit einem Nullzeichen (\0) abgeschlossen ist. Eine nullterminierte Zeichenfolge besteht aus Zeichen, die die Zeichenfolge bilden, gefolgt von einer Null.
Betrachten Sie die unten angegebene String-Deklaration:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Die obige Deklaration erstellt eine Zeichenfolge, die das Wort John bildet. Das Wort hat 4 Zeichen, aber die Zeichenfolge hat eine Größe von 5. Der zusätzliche Platz ermöglicht die Aufnahme des Nullzeichens.
Mit der Array-Initialisierungsregel können wir die obige Anweisung wie folgt schreiben:
char name[] = "John";
Beachten Sie, dass Sie das Nullzeichen nicht am Ende der String-Konstante platzieren müssen. C++ Der Compiler fügt beim Initialisieren des Arrays automatisch „\0“ am Ende der Zeichenfolge ein.
std::string
Die Standard C++ Die Bibliothek stellt die String-Klasse bereit, die verschiedene String-Operationen unterstützt. Sie wird als std::string geschrieben.
Um diese Klasse verwenden zu können, müssen wir sie zunächst mit dem #include-Präprozessor in unseren Arbeitsbereich einbinden, wie unten gezeigt:
#include<string>
Als nächstes können wir unseren String mit dem Schlüsselwort string deklarieren. Zum Beispiel:
string name = "John";
Die obige Anweisung erstellt eine Zeichenfolge mit dem Namen „name“, die den Wert „John“ enthält.
Auf Zeichenfolgenwerte zugreifen
In C++können wir über den String-Namen auf die String-Werte zugreifen. Zum Beispiel:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Einbinden der iostream-Header-Datei in unseren Code. Dadurch können wir von der Konsole lesen und darauf schreiben.
- Einschließlich des std-Namespace, um seine Klassen und Funktionen zu verwenden, ohne ihn aufzurufen.
- Aufruf der Funktion main(), in der die Logik des Programms hinzugefügt werden soll. Das { markiert den Beginn des Hauptteils der main()-Funktion.
- Deklarieren Sie eine Zeichenfolge und geben Sie ihr den Namen name. Die Zeichenfolge speichert den Wert John. Der zusätzliche Platz speichert das Nullzeichen.
- Einen Text auf der Konsole drucken.
- Drucken des Werts der Zeichenfolge namens name auf der Konsole.
- Die Funktion main() sollte einen Wert zurückgeben, wenn das Programm einwandfrei läuft.
- Ende des Hauptteils der main()-Funktion.
Hier ist ein weiteres Beispiel mit dem C++ Standard-String-Klasse:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Einbinden der iostream-Header-Datei in unseren Code. Dadurch können wir von der Konsole lesen und darauf schreiben.
- Einbindung der Standard-String-Klasse in unseren Code.
- Einschließlich des std-Namespace, um seine Klassen und Funktionen zu verwenden, ohne ihn aufzurufen.
- Aufruf der Funktion main(), in der die Logik des Programms hinzugefügt werden soll. Das { markiert den Beginn des Hauptteils der main()-Funktion.
- Einen String deklarieren und ihm den Namen name geben. Die Zeichenfolge speichert den Wert Guru99.
- Drucken des Werts des Zeichenfolgennamens zusammen mit etwas Text auf der Konsole.
- Die Funktion main() sollte einen Wert zurückgeben, wenn das Programm einwandfrei läuft.
- Ende des Hauptteils der main()-Funktion.
String-Funktionen in C++
Sie möchten Zeichenfolgen häufig bearbeiten. C++ bietet eine große Auswahl an Funktionen, die Sie hierfür verwenden können. Diese Funktionen sind in der Klasse CString definiert, daher müssen wir sie in unseren Code einbinden, um die Funktionen verwenden zu können. Lassen Sie uns einige davon besprechen:
strcpy ()
Dies ist die String-Kopierfunktion. Es kopiert eine Zeichenfolge in eine andere Zeichenfolge.
Syntax:
strcpy(string1, string2);
Die beiden Parameter der Funktion, string1 und string2, sind Zeichenfolgen. Die Funktion kopiert die Zeichenfolge string2 in string1.
strcat()
Dies ist die Funktion zum Verketten von Zeichenfolgen. Es verkettet Zeichenfolgen.
Syntax:
strcat(string1, string2);
Die beiden Parameter der Funktion, string1 und string2, sind die zu verkettenden Zeichenfolgen. Die obige Funktion verkettet die Zeichenfolge string2 mit dem Ende der Zeichenfolge string1.
strlen ()
Dies ist die Stringlängenfunktion. Es gibt die Länge der Zeichenfolge zurück, die ihm als Argument übergeben wurde.
Syntax:
strnlen(string1)
Der Parameter string1 ist der Name des Strings, dessen Länge ermittelt werden soll. Die obige Funktion gibt die Länge der Zeichenfolge string1 zurück.
strcmp()
Dies ist die String-Vergleichsfunktion. Es wird zum String-Vergleich verwendet.
Syntax:
strcmp(string1, string2);
Die obige Funktion gibt 0 zurück, wenn die Zeichenfolgen string1 und string2 ähnlich sind, und weniger als 0, wenn string1 string2.
Beispiel:
Das folgende Beispiel demonstriert die Verwendung der obigen Zeichenfolgenfunktionen:
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Einbinden der iostream-Header-Datei in unseren Code. Dadurch können wir von der Konsole lesen und darauf schreiben.
- Einbindung der Standard-CString-Klasse in unseren Code.
- Einschließlich des std-Namespace, um seine Klassen und Funktionen zu verwenden, ohne ihn aufzurufen.
- Aufruf der Funktion main(), in der die Logik des Programms hinzugefügt werden soll. Das { markiert den Beginn des Hauptteils der main()-Funktion.
- Deklarieren Sie eine Zeichenfolge mit 10 Zeichen und geben Sie ihr den Namen name1. Die Zeichenfolge speichert den Wert Guru99.
- Deklarieren Sie eine Zeichenfolge mit 10 Zeichen und geben Sie ihr den Namen name2. Die Zeichenfolge speichert den Wert John.
- Deklarieren Sie eine Zeichenfolge mit 10 Zeichen und geben Sie ihr den Namen name3.
- An deklarieren ganzzahlige Variable namens len.
- Kopieren der Zeichenfolge name1 in die Zeichenfolge name3.
- Drucken des Werts der Zeichenfolge name1 zusammen mit etwas Text auf der Konsole. Es sollte Guru99 drucken.
- Verketten der Zeichenfolgen „name2“ mit dem Ende der Zeichenfolge „name1“. Der Wert von name1 ist jetzt Guru99John.
- Drucken des Werts der Zeichenfolge name1 zusammen mit etwas Text auf der Konsole. Es sollte Guru99John lauten
- Bestimmen der Länge der Zeichenfolge mit dem Namen name1 und Zuweisen des Längenwerts zur Variablen len.
- Drucken des Werts der len-Variablen zusammen mit anderem Text auf der Konsole.
- Die Funktion main() sollte einen Wert zurückgeben, wenn das Programm einwandfrei läuft.
- Ende des Hauptteils der main()-Funktion.
Zusammenfassung
- Ein String ist eine Folge von Zeichen.
- Strings gehören zur Standard-String-Klasse in C++.
- Wir können Zeichenfolgen mithilfe der Zeichenfolge im C-Stil oder der Standardzeichenfolgenklasse deklarieren.
- Die Funktion strcpy() kopiert einen String in einen anderen.
- Die Funktion strcat() verkettet zwei Zeichenfolgen.
- Die Funktion strlen() gibt die Länge eines Strings zurück.
- Die Funktion strcmp() vergleicht zwei Zeichenfolgen.