Wie man Strings mit Strtok in der C -Programmierung aufteilt?

Wie man Strings mit Strtok in der C -Programmierung aufteilt?
Saiten spalten ist wichtig aus verschiedenen Gründen wie Textverarbeitung, Datenanalyse oder Parsen und der C -Programmiersprache bietet zahlreiche Möglichkeiten, um diese Aufgabe zu erledigen. Die beliebteste C -Funktion, die es zulässt Spaltstring in mehrere Token durch einen bestimmten Trennzeichen ist Strtok (). Als Bibliotheksfunktion ist sie in der Standard -C -Bibliothek verfügbar, die String -Operationen unterstützt.

Wie funktioniert die Funktion von Strtok ()??

Um eine Zeichenfolge zu teilen, die verwendet wird Strtok (), Sie müssen zuerst verstehen, wie es funktioniert. Der Strtok () liest das Eingangszeichenfolge -Zeichen für Zeichen, bis es auf einen Trennzeichen stößt. Sobald ein Trennzeichen gefunden wurde, Strtok () Ersetzt es durch ein Nullzeichen '\ 0' und spaltet die ursprüngliche Zeichenfolge effektiv in zwei Teile auf. Ein Zeiger auf das erste Zeichen der Zeichenfolge wird dann von der Funktion zurückgegeben. Der Strtok () Die Syntax der Funktion ist:

Strtok (char* str, const char* delim);

Der Strtok () Funktion nimmt zwei Argumente ein- einen Zeiger auf das erste Token im Tokenset und eine Zeichenfolge, die die Trennzeichen-Zeichen enthält. Es gibt einen Zeiger auf das nächste Token zurück, der unmittelbar nach dem Trennzeichen beginnt, der das letzte Token aufgeteilt hat. Es kehrt null zurück, wenn es keine Token mehr gibt.

Wie man Strings mit Strtok () in der C -Programmierung aufteilt?

Hier ist ein Beispiel für die Verwendung Strtok () um eine Zeichenfolge zu teilen:

#enthalten
#enthalten
int main ()
char input [] = "Linux, Hinweis";
Char *Token;
token = strtok (Eingabe, ",");
während (Token != Null)
printf ("%S \ n", Token);
token = strtok (null, ",");

Rückkehr 0;

Im obigen Beispiel deklarieren wir zuerst einen Zeiger auf einen Char. Wir verwenden dann Strtok () um die Eingangszeichenfolge in Token aufzuteilen. Der erste Anruf von Strtok () Nimmt zwei Argumente an: die Eingabezeichenfolge und die Trennzeichenzeichenfolge „“, “,", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",". Das erste Token, "Linux", ist derjenige, der Strtok () kehrt als Zeiger auf. Wir verwenden dann eine Weile Schleife, um die Eingangszeichenfolge durchzusetzen, indem wir verwenden Strtok () mit einem Nullzeiger, um die verbleibenden Token weiter zu teilen. Die Trennzeichenfolge wird erneut als Argument an übergeben Strtok () um die Trennzeichenzeichen anzuzeigen.

Ausgang

Einschränkungen der Funktion strtok ()

1: Ändert die ursprüngliche Zeichenfolge

Der Strtok () Funktion gibt keine Kopie des Zeichenfolge zurück. Stattdessen modifiziert es den Originalzeichenfolge. Wenn Sie nach dem Aufteilen eine nicht modifizierte Version der Zeichenfolge benötigen, sollten Sie vor dem Aufrufen eine Kopie des Originalzeichens erstellen Strtok ().

2: asynchron

Eine signifikante Einschränkung von Strtok () ist, dass es jeweils nur in einer einzigen Zeichenfolge verwendet werden kann. Mit anderen Worten, Sie können es nicht verwenden, um mehrere Zeichenfolgen gleichzeitig zu tokenisieren.

3: Begrenzte Kapazität

Eine weitere mögliche Einschränkung ist das Strtok () hat eine begrenzte Kapazität, um wiederholte Grenzwerte zu handhaben. Zum Beispiel, wenn Ihre String zwischen den Wörtern aufeinanderfolgende Räume hat, Strtok () behandelt es als einzelne Trennzeichen. Um solche Fälle zu bewältigen, müssen Sie einen anderen Ansatz verwenden.

Abschluss

Der Strtok () Funktion ist eine sehr nützliche Funktion zum Aufteilen von Zeichenfolgen in der C -Programmierung. Es dauert eine Eingangszeichenfolge und eine Trennzeichenfolge und gibt einen Zeiger auf das erste Token zurück, das in der Eingangszeichenfolge gefunden wurde. Strtok () ist destruktiv. Wenn Sie also die Integrität der ursprünglichen Zeichenfolge bewahren müssen, wird empfohlen, stattdessen ein Duplikat davon zu erstellen. Nachdem Sie nun wissen, wie es geht, können Sie jede Schnur in kleinere Teile zur Verarbeitung schneiden.