So teilen Sie die Zeichenfolge in C ++

So teilen Sie die Zeichenfolge in C ++
Die Arbeit mit String -Daten ist ein wesentlicher Bestandteil jeder Programmiersprache. Manchmal müssen wir die String -Daten für Programmierzwecke teilen. Die Funktion split () existiert in vielen Programmiersprachen, um die Zeichenfolge in mehrere Teile zu unterteilen. In C ++ gibt es keine eingebaute Split () -Funktion für die Aufteilung der Zeichenfolge, aber in C ++ gibt es viele verschiedene Arten, um dieselbe Aufgabe zu erledigen, z. B. die Verwendung getline () Funktion, Strtok () Funktion, verwendet finden() Und löschen() Funktionen usw. Die Verwendungen dieser Funktionen, um Strings in C ++ zu teilen, wurden in diesem Tutorial erklärt.

Voraussetzung

Bevor Sie die Beispiele dieses Tutorials überprüfen, müssen Sie überprüfen, ob der G ++ - Compiler installiert ist oder nicht im System. Wenn Sie Visual Studio -Code verwenden, installieren Sie die erforderlichen Erweiterungen, um den C ++ - Quellcode zu kompilieren, um den ausführbaren Code zu erstellen. Hier wurde die Visual Studio -Codeanwendung zum Kompilieren und Ausführen des C ++ - Code verwendet.

Split String verwenden Getline () -Funktion

Mit der Funktion "Getline ()) werden Zeichen aus einer Zeichenfolge oder einem Dateiinhalt gelesen, bis ein bestimmter Trennzeichen oder ein bestimmtes Trennzeichen gefunden wird, und speichern Sie jede Analyse -Zeichenfolge in eine andere Zeichenfolgevariable. Die Funktion wird die Aufgabe fortsetzen, bis der vollständige Inhalt der Zeichenfolge oder Datei analysiert wird. Die Syntax dieser Funktion ist unten angegeben.

Syntax:

iStream & getline (iStream & IS, String & Str, char delim);

Hier der erste Parameter, IssTream, ist das Objekt, von dem die Zeichen extrahiert werden. Der zweite Parameter ist eine String -Variable, die den extrahierten Wert speichert. Der dritte Parameter wird verwendet, um den Trennzeichen einzustellen, der zum Extrahieren der Zeichenfolge verwendet wird.

Erstellen Sie eine C ++ - Datei mit dem folgenden Code, um eine Zeichenfolge basierend auf dem Space -Trennzeichen zu teilen getline () Funktion. Ein Stringwert mehrerer Wörter wurde in eine Variable zugeordnet, und der Speicherplatz wurde als Trennzeichen verwendet. Eine Vektorvariable wurde deklariert, um die extrahierten Wörter zu speichern. Als nächstes druckte die 'for' Loop jeden Wert aus dem Vektorarray.

// notwendige Bibliotheken einschließen
#enthalten
#enthalten
#enthalten
#enthalten
int main ()

// Stringdaten definieren, die aufgeteilt werden
STD :: String strdata = "Lernen Sie C ++ programmieren";
// Vergleichsdaten definieren, die als Trennzeichen bearbeitet werden
const char separator = ";
// Definieren Sie die dynamische Array -Variable der Zeichenfolgen
STD :: Vektor outputArray;
// einen Stream aus der Zeichenfolge konstruieren
std :: stringstream streamdata (strdata);
/*
Deklare String -Variable, die verwendet wird
Daten nach dem Split speichern
*/
std :: string val;
/*
Die Schleife iteriert die geteilten Daten und
Fügen Sie die Daten in das Array ein
*/
while (std :: getline (streamdata, val, separator))
OutputArray.push_back (val);

// Drucken Sie die geteilten Daten
std :: Cout << "The original string is:" << strData << std::endl;
// Lesen Sie das Array und drucken Sie die geteilten Daten aus
std :: Cout <<
"\ nthe Werte nach dem Aufteilen der Zeichenfolge basierend auf dem Speicherplatz:" <<
std :: endl;
für (auto & val: outputArray)
std :: Cout << val << std::endl;

Rückkehr 0;

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Codes angezeigt.

Split String mit Strtok () -Funktion aufgeteilt

Die Funktion strtok () kann verwendet werden, um eine Zeichenfolge durch Token zu teilen. Es gibt einen Zeiger auf das nächste Token zurück, wenn es existiert. Andernfalls gibt es einen Nullwert zurück. Der Saite.H Die Header -Datei ist erforderlich, um diese Funktion zu verwenden. Eine Schleife erfordert das Lesen aller geteilten Werte aus der Zeichenfolge. Das erste Argument enthält den analysierten Stringwert, und das zweite Argument enthält den Trennzeichen, mit dem das Token generiert wird. Die Syntax dieser Funktion ist unten angegeben.

Syntax:

char * strtok (char * str, const char * grAmiters);

Erstellen Sie eine C ++ - Datei mit dem folgenden Code, um eine Zeichenfolge mit der Funktion strtok () zu teilen. In dem Code, der einen Dickdarm (':') als Trennzeichen enthält. Als nächstes die Strtok () Die Funktion wird mit dem String -Wert und dem Trennzeichen aufgerufen, um das erste Token zu generieren. Der 'während'Schleife wird definiert, um die anderen Token und die Token -Werte bis zur zu generieren NULL Wert wird gefunden.

// notwendige Bibliotheken einschließen
#enthalten
#enthalten
int main ()

// eine Reihe von Zeichen deklarieren
Char Strarray [] = "Mehrab Hossain: Es professionell: [email protected]: +8801726783423 ";
// den ersten Token -Wert basierend auf ':' zurückgeben ':'
char *tokenValue = strtok (strarrray, ":");
// Initialisieren Sie die Zählervariable
int counter = 1;
/*
Iterieren Sie die Schleife, um den Token -Wert zu drucken
und teilen Sie die verbleibenden Zeichenfolgendaten auf, um zu erhalten
der nächste Tokenwert
*/
während (Tokenwert != Null)

if (Zähler == 1)
printf ("name: %s \ n", tokenValue);
sonst wenn (Zähler == 2)
printf ("Beruf: %S \ n", Tokenwert);
sonst wenn (Zähler == 3)
printf ("E -Mail: %S \ n", TokenValue);
anders
printf ("Handy Nein. : %s \ n ", Tokenwert);
tokenValue = strtok (null, ":");
Zähler ++;

Rückkehr 0;

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Codes angezeigt.

Split String verwenden mit Find () und erase () Funktionen

Die Zeichenfolge kann in C ++ unter Verwendung von Find () und erase () aufgeteilt werden. Erstellen Sie eine C ++ - Datei mit dem folgenden Code, um die Verwendungen von find () und erase () zu überprüfen, um einen Zeichenfolgenwert basierend auf einem bestimmten Trennzeichen zu teilen. Der Token -Wert wird generiert, indem die Position des Trennzeichens unter Verwendung der Find () -Funktion verwendet wird, und der Token -Wert wird gespeichert. Diese Aufgabe wird wiederholt, bis der vollständige Inhalt der Zeichenfolge analysiert wird. Als nächstes werden die Werte des Vektorarrays gedruckt.

// notwendige Bibliotheken einschließen
#enthalten
#enthalten
#enthalten
int main ()
// die Zeichenfolge definieren
std :: StringData = "Bangladesch und Japan und Deutschland und Brasilien";
// Definieren Sie den Separator
std :: string separator = "und";
// die Vektorvariable deklarieren
STD :: Vektor Land;
// Ganzzahlvariable deklarieren
int Position;
// String -Variable deklarieren
std :: string outstr, token;
/*
Teilen Sie die Zeichenfolge mit Substr () -Funktion auf
und Hinzufügen des gespaltenen Wortes in den Vektor
*/
while ((Position = StringData.Finden Sie (Separator)) != std :: string :: npos)
token = stringData.Substr (0, Position);
// Entfernen Sie den zusätzlichen Platz von der Vorderseite der geteilten Zeichenfolge
Land.push_back (Token.löschen (0, Token.find_first_not_of ("")));
StringData.löschen (0, Position + Separator.Länge());

// Drucken Sie alle gespaltenen Worts außer dem letzten aus
für (const auto & überstr: land)
std :: Cout << outstr << std::endl;

// Drucken Sie das zuletzt gespaltene Wort
std :: Cout << stringData.erase(0, stringData.find_first_not_of(" ")) << std::endl;
Rückkehr 0;

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Codes angezeigt.

Abschluss

In diesem Tutorial wurden drei verschiedene Möglichkeiten zum Aufteilen einer Zeichenfolge in C ++ erläutert, indem einfache Beispiele verwendet werden, um den neuen Python -Benutzern den Aufteilungsvorgang einfach in C durchzuführen++.