Wie teilt man Strings mit strtok() in der C-Programmierung auf?

Wie Teilt Man Strings Mit Strtok In Der C Programmierung Auf



Saiten spalten ist aus verschiedenen Gründen wie Textverarbeitung, Datenanalyse oder Parsing wichtig, und die Programmiersprache C bietet zahlreiche Möglichkeiten, diese Aufgabe zu bewältigen. Allerdings ist die beliebteste C-Funktion, die es ermöglicht Zeichenfolge teilen in mehrere Token durch ein bestimmtes Trennzeichen ist strtok() . Da es sich um eine Bibliotheksfunktion handelt, ist sie in der Standard-C-Bibliothek verfügbar, die Zeichenfolgenoperationen unterstützt.

Wie funktioniert die strtok()-Funktion?

So teilen Sie eine Zeichenfolge mit strtok() , müssen Sie zuerst verstehen, wie es funktioniert. Der strtok() liest die Eingabezeichenfolge zeichenweise, bis sie auf ein Trennzeichen stößt. Sobald ein Trennzeichen gefunden ist, strtok() ersetzt es durch ein Nullzeichen „\0“, wodurch die ursprüngliche Zeichenfolge effektiv in zwei Teile geteilt wird. Die Funktion gibt dann einen Zeiger auf das erste Zeichen des Strings zurück. Der strtok() Die Syntax der Funktion lautet:

strtok ( verkohlen * Str , konst verkohlen * Ich teile ) ;

Der strtok() Die Funktion nimmt zwei Argumente entgegen – einen Zeiger auf das erste Token im Satz von Token und eine Zeichenfolge, die die Trennzeichen enthält. Es gibt einen Zeiger auf das nächste Token zurück, das unmittelbar nach dem Trennzeichen beginnt, das das letzte Token geteilt hat. Es gibt NULL zurück, wenn keine Token mehr vorhanden sind.







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

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



#include

#include

int hauptsächlich ( ) {

verkohlen Eingang [ ] = 'Linux, Hinweis' ;

verkohlen * Zeichen ;

Zeichen = strtok ( Eingang , ',' ) ;

während ( Zeichen != NULL ) {

Druckf ( '%S \N ' , Zeichen ) ;

Zeichen = strtok ( NULL , ',' ) ;

}

zurückkehren 0 ;

}

Im obigen Beispiel deklarieren wir zuerst einen Zeiger auf ein Zeichen. Wir verwenden dann strtok() um die Eingabezeichenfolge in Token aufzuteilen. Der erste Anruf von strtok() akzeptiert zwei Argumente: die Eingabezeichenfolge und die Trennzeichenfolge „,“. Das erste Token, „Linux“, ist das strtok() kehrt als Zeiger auf zurück . Wir verwenden dann eine while-Schleife, um die Eingabezeichenfolge zu durchlaufen, using strtok() mit einem NULL-Zeiger, um mit dem Teilen der verbleibenden Token fortzufahren. Die Trennzeichenfolge wird wieder als Argument an übergeben strtok() um die Trennzeichen anzugeben.



Ausgang





Einschränkungen der Strtok()-Funktion

1: Ändert den ursprünglichen String

Der strtok() Funktion gibt keine Kopie des Strings zurück; Stattdessen wird die ursprüngliche Zeichenfolge geändert. Wenn Sie also nach dem Aufteilen eine unveränderte Version der Zeichenfolge benötigen, sollten Sie vor dem Aufrufen eine Kopie der ursprünglichen Zeichenfolge erstellen strtok() .



2: Asynchron

Eine wesentliche Einschränkung von strtok() ist, dass es nur auf einer einzigen Saite gleichzeitig verwendet werden kann. Mit anderen Worten, Sie können damit nicht mehrere Zeichenfolgen gleichzeitig tokenisieren.

3: Begrenzte Kapazität

Eine weitere mögliche Einschränkung ist die strtok() hat eine begrenzte Kapazität, um wiederholte Trennzeichen zu verarbeiten. Wenn Ihre Zeichenfolge beispielsweise aufeinanderfolgende Leerzeichen zwischen Wörtern enthält, strtok() behandelt es als ein einzelnes Trennzeichen. Um solche Fälle zu handhaben, müssen Sie einen anderen Ansatz verwenden.

Abschluss

Der strtok() Die Funktion ist eine sehr nützliche Funktion zum Aufteilen von Zeichenfolgen in der C-Programmierung. Es nimmt eine Eingabezeichenfolge und eine Begrenzungszeichenfolge und gibt einen Zeiger auf das erste Token zurück, das in der Eingabezeichenfolge gefunden wird. strtok() ist destruktiv. Wenn Sie also die Integrität der ursprünglichen Zeichenfolge bewahren müssen, wird empfohlen, stattdessen ein Duplikat davon zu erstellen. Jetzt, da du weißt, wie es geht, kannst du jeden Faden zur Verarbeitung in kleinere Stücke schneiden.