Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

strtok - Zeichenkette in Teilzeichenketten zerlegen

&pagelevel(4)&pagelevel

Definition

#include <string.h>

char *strtok(char *s1, const char *s2);

Mit strtok lässt sich eine Gesamtzeichenkette s1 in Teilzeichenketten - sog. „Tokens“ - zerlegen, z.B. ein Satz in die einzelnen Wörter oder eine Quellprogrammanweisung in die kleinsten syntaktischen Einheiten. Beginn- und Endekriterium für jedes Token sind Trennzeichen (Separatoren), die Sie in einer zweiten Zeichenkette s2 angeben. Tokens können durch einen oder mehrere dieser Separatoren begrenzt sein, bzw. durch Beginn und Ende der Gesamtzeichenkette s1. Typische Separatoren zwischen den Wörtern eines Satzes sind z.B. Leerzeichen, Doppelpunkt, Komma etc. Pro Aufruf bzw. Token kann eine andere Zeichenfolge s2 angegeben werden.

Pro Aufruf bearbeitet strtok genau eine Teilzeichenkette. Der erste Aufruf liefert einen Zeiger auf den Beginn der ersten gefundenen Teilzeichenkette, die weiteren Aufrufe jeweils einen Zeiger auf den Beginn der nächsten Teilzeichenketten. Jede Teilzeichenkette schließt strtok mit dem Nullbyte (\0) ab.

Damit strtok die Gesamtzeichenkette s1 sukzessive abarbeitet, darf nur beim ersten Aufruf die Anfangadresse, d.h. ein Zeiger auf s1 übergeben werden. Bei allen weiteren Aufrufen ist s1 als NULL-Zeiger zu übergeben.

Returnwert

Zeiger auf den Beginn einer Teilzeichenkette.



bei Erfolg. Beim ersten Aufruf ein Zeiger auf die erste Teilzeichenkette, beim nächsten Aufruf ein Zeiger auf die nachfolgende Teilzeichenkette etc.
strtok schließt jede Teilzeichenkette in s1 mit einem Nullbyte (\0) ab, wobei das jeweils erste gefundene Trennzeichen mit \0 überschrieben wird.

 

NULL-Zeiger

falls keine bzw. keine weitere Teilzeichenkette gefunden wurde.

Beispiel

#include <string.h>
#include <stdio.h>
int main(void)
{
  static char str[] = "?a???b,,,#c";
  char *t;
  t = strtok(str, "?");        /* t zeigt auf das Token "a" */
  t = strtok(NULL, ",");       /* t zeigt auf das Token "??b" */
  t = strtok(NULL, "#,");      /* t zeigt auf das Token "c" */
  t = strtok(NULL, "?");       /* t ist ein NULL-Zeiger */
  return 0;
}

Siehe auch

strtok