Zum Hauptinhalt springen

Wie funktioniert die strtok-Funktion

Die strtok-Funktion ist eine der nützlichsten Funktionen für die String-Verarbeitung in der C-Programmierung. Sie ermöglicht es, eine Zeichenfolge nach einem bestimmten Trennzeichen in separate "Token" aufzuteilen. Dies ist sehr praktisch, wenn Sie eine große Menge an Textdaten verarbeiten oder einfache Manipulationen mit einzelnen Wörtern oder Phrasen durchführen müssen.

Der Hauptvorteil der strtok-Funktion besteht darin, dass sie "direkt" funktioniert, dh sie ändert die ursprüngliche Zeichenfolge und teilt sie in separate Token auf. Dies spart Speicher und Laufzeit des Programms, da keine neuen Zeilen oder Arrays erstellt werden müssen, um getrennte Teile zu speichern. Darüber hinaus unterstützt strtok die Verarbeitung mehrerer Trennzeichen gleichzeitig, wodurch es noch flexibler und benutzerfreundlicher wird.

Um die Funktion strtok zu verwenden, übergeben Sie ihr einen Zeiger auf die ursprüngliche Zeichenfolge und eine Trennzeichenfolge. Durch den ersten Aufruf sucht die Funktion nach dem ersten Vorkommen des Trennzeichens in der Zeichenfolge und ersetzt es durch das Zeilenende-Zeichen. Es gibt dann einen Zeiger zum Anfang des ersten Tokens zurück. Strtok-Aufrufe, die dem ersten Aufruf folgen, erhalten NULL als erstes Argument, sodass die Funktion die Zeichenfolge weiterhin in Token aufteilen kann, bis alle Token verarbeitet sind.

Beispiel für die Verwendung der strtok-Funktion:




#include


#include


int main()

char str[] = "Beispiel für eine zu trennende Zeichenfolge";


const char delimiters[] = " ";


char *token = strtok(str, delimiters);


while (token != NULL)

printf("Token: %s


", token);


token = strtok(NULL, delimiters);


>


return 0;


>

Als Ergebnis der Ausführung dieses Programms wird jedes Token, das Sie mit der Funktion strtok erhalten haben, an den Standardausgabestream ausgegeben. Auf diese Weise können wir jede Aktion mit jedem Token ausführen, z. B. es in einer separaten Variablen speichern oder mit anderen Werten vergleichen.

Was ist die Strtok-Funktion?

Die strtok-Funktion akzeptiert zwei Argumente: einen Zeiger auf die zu trennende Zeichenfolge und einen Zeiger auf eine Zeichenfolge mit einem Satz von Trennzeichen. Beim ersten Aufruf der Funktion teilt strtok die übergebene Zeichenfolge in Token auf und ersetzt die Trennzeichen durch Nullzeichen. In diesem Fall gibt die Funktion einen Zeiger auf das erste Token zurück. Nachfolgende Funktionsaufrufe mit NULL als erstes Argument brechen die Zeichenfolge weiterhin in die folgenden Token auf und geben einen Zeiger auf sie zurück.

Mit der Funktion strtok können Sie eine Zeichenfolge bequem in einzelne Wörter oder Teilzeichenfolgen aufteilen, um sie weiter zu verarbeiten. Sie wird häufig bei der Arbeit mit Textdaten verwendet, z. B. um eine Zeichenfolge in ein Array einzelner Wörter zu konvertieren oder durch Leerzeichen getrennte Befehle zu analysieren.

Beispiele für die Verwendung der strtok-Funktion

Die strtok-Funktion bietet die Möglichkeit, eine Zeichenfolge unter Verwendung eines angegebenen Trennzeichens in separate Teile (Token) aufzuteilen. Im Folgenden sind Beispiele für die Verwendung dieser Funktion aufgeführt:

#include #include int main() return 0;>

Ergebnis der Programmausführung:

ПриветмирКакдела
#include #include int main() return 0;>

Ergebnis der Programmausführung:

applebananaorange
#include #include int main() printf("Третий токен: %s", token);return 0;>

Ergebnis der Programmausführung:

Третий токен: charlie

Die Beispiele veranschaulichen verschiedene Szenarien, in denen die Funktion strtok verwendet wird, um eine Zeichenfolge in Token zu trennen. In jedem Beispiel geben wir die Zeichenfolge an, die geteilt werden soll, und das Trennzeichen, das bestimmt, wo die Trennung erfolgen soll. Als nächstes gehen wir mit einer Schleife durch alle Token und führen die notwendigen Aktionen mit ihnen durch.

Wie teilt man eine Zeichenfolge mit strtok in Teilzeichenfolgen auf

Um die strtok-Funktion zu verwenden, müssen Sie eine Headerdatei einschließen. Die strtok-Funktion akzeptiert zwei Argumente: ein Zeiger auf die zu trennende Zeichenfolge und ein Zeiger auf die Trennzeichenfolge. Diese Funktion gibt einen Zeiger auf die erste gefundene Teilzeichenfolge zurück.

Beispiel für die Verwendung der strtok-Funktion:

#include #include int main() return 0;>

In diesem Beispiel wird die Zeichenfolge "Split-String-in-Teilstrings" basierend auf dem Trennzeichen "-" (Bindestrich) in Teilstrings aufgeteilt. Das Ergebnis besteht darin, in jeder Zeile eine Teilzeichenfolge auszugeben:

Разделитьстрокунаподстроки

Bei jedem Aufruf der Funktion strtok gibt sie einen Zeiger auf die gefundene Teilzeichenfolge zurück und verschiebt den inneren Zeiger an die nächste Position in der Zeichenfolge. Wenn kein Trennzeichen mehr vorhanden ist, gibt die Funktion NULL zurück, was ein Signal ist, dass der Trennvorgang beendet wurde.

Es ist wichtig, vorsichtig zu sein, wenn Sie die Funktion strtok verwenden, da sie die ursprüngliche Zeichenfolge ändert. Normalerweise sollten Sie vor der Verwendung von strtok eine Kopie der Zeichenfolge erstellen oder die ursprüngliche Zeichenfolge in einer separaten Variablen speichern, um die Identität der Daten nicht zu verlieren.