005
07.10.2009, 19:52 Uhr
0xdeadbeef
Gott (Operator)
|
Nein, strtok verändert lediglich den String, den man ihr gibt, und merkt sich intern die letzte Position. Des letzteren wegen ist strtok nicht threadsicher und sollte auf Systemen, die POSIX.1-2001 unterstützen, durch strtok_r ersetzt werden.
Das sieht dann etwa so aus:
C++: |
char input[] = "ABCDEFG,HIJKLMN,OPQRSTU,VWXYZ:12789:11253:55485:7463574"; char *saveptr; char *zeiger[10]; size_t i;
for(i = 1, zeiger[0] = strtok_r(input, ",:", &saveptr); i < 10 && zeiger[i] = strtok_r(NULL , ",:", &saveptr); ++i);
|
bzw. mit strtok (weniger empfehlenswert)
C++: |
char input[] = "ABCDEFG,HIJKLMN,OPQRSTU,VWXYZ:12789:11253:55485:7463574"; char *zeiger[10]; size_t i;
for(i = 1, zeiger[0] = strtok(input, ",:"); i < 10 && zeiger[i] = strtok(NULL , ",:"); ++i);
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 07.10.2009 um 19:52 Uhr von 0xdeadbeef editiert. |