strtok, _mbstok, wcstok
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.
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 |
+ |
+ |
+ |