strtok, _mbstok, wcstok

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu string.h - Index


Header-Datei

string.h, mbstring.h

Kategorie

Routinen für Speicher- und String-Bearbeitung

Prototyp

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

wchar_t *wcstok(wchar_t *s1, const wchar_t *s2);

unsigned char *_mbstok(unsigned char *s1, const unsigned char *s2);

Beschreibung

Durchsucht einen String nach Token, die durch die in einem zweiten String angegebenen Begrenzungszeichen voneinander getrennt sind.

strtok betrachtet String s1 als aus Folgen von Null oder mehr Token bestehend, die durch ein oder mehrere in String s2 angegebene Begrenzungszeichen voneinander getrennt sind.

Der erste Aufruf von strtok gibt einen Zeiger auf des erste Zeichen des ersten Tokens in s1 zurück und schreibt in s1 ein Nullzeichen unmittelbar hinter das gefundene Token. Die folgenden Aufrufe mit NULL für das erste Argument geben das jeweils nächste Token in s1 zurück, bis keine weiteren Token gefunden werden.

Bei jedem Aufruf kann ein anderer Begrenzungszeichen-String s2 angegeben werden.

Anmerkung:  Aufrufe von strtok können nicht verschachtelt werden. Es dürfen also keine Funktionen aufgerufen werden, die ihrerseits strtok verwenden. Andernfalls entsteht eine Endlosschleife.

Rückgabewert

strtok gibt einen Zeiger auf das in s1 gefundene Token zurück. Ein NULL-Zeiger wird zurückgegeben, wenn keine weiteren Tokens vorhanden sind.

Beispiel



  #include <string.h>
  #include <stdio.h>
  int main(void)
  {
     char input[16] = "abc,d";
     char *p;
     /* strtok setzt ein NULL-Zeichen
     ans Ende des gefundenen Tokens */
     p = strtok(input, ",");
     if (p)   printf("%s\n", p);
     /* Ein zweiter Aufruf von strtok mit NULL als
     erstem Parameter gibt einen Zeiger auf das
     nächste Token (d) zurück */
     p = strtok(NULL, ",");
     if (p)   printf("%s\n", p);
     return 0;
  }



Portabilität



POSIX Win32 ANSI C ANSI C++

strtok

+

+

+

+

_mbstok

+

wcstok

+

+

+