PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie zerlegt strtok() in C einen String in Tokens?



SarthakBhatt
18.01.2023, 08:35
Bitte erklären Sie, wie die Methode strtok() funktioniert. Laut Dokumentation teilt es die Zeichenfolge in Tokens auf. Ich kann anhand des Handbuchs nicht herausfinden, was es bewirkt.

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
Als die erste While-Schleife begann, war der Inhalt von str einfach »this«. Ich habe Watches auf str und *pch hinzugefügt, um ihre Funktionalität zu testen. Wie erschien die folgende Ausgabe auf dem Bildschirm?

Splitting string "- This, a sample string." into tokens:
This
a
sample
string
Laut dem Artikel von scaler topics (https://www.scaler.com/topics/c/tokens-in-c/) ändert strtok() seinen gelieferten String, indem es Token mit NUL beendet, bevor es zurückkehrt. Wenn ich versuche, den gesamten Puffer (str[]) zu inspizieren, wird er zwischen strtok-Aufrufen () aktualisiert. Ist das richtig? Könnte mir bitte jemand helfen?