problem mit strtok()
-
Hallo ich möchte mit strtok() ein string zerteilen. Leider klappt es nicht obwohl mein string den ich übergebe richtg gefüllt ist. Habe noch ein bild angefügt vom debuggen dort habe ich strtok() auskommnetiert das ist also nicht der fehler :).
http://s3.directupload.net/images/101014/i5bac5w6.jpg
edit: wieso sehe ich eigentlich im überwachungsfesnter nur "" und nicht den string ?
edit2:da die ersten zeichen leer waren ist strtok() nicht angesprungen mit cl->buff+5 läufts ...
-
strtok ist sicher ziemlich mächtig, oftmals aber offensichtlich schwer zu bedienen, etwas für Kenner:
- strtok zerstört den String (der darf demzufolge nicht const sein)
- strtok ist nicht reentrant und damit auch nicht multi-thread fähig
- strtok übergeht aufeinanderfolgende Trennzeichen, d.h. "1;;2;3" wird nicht etwa
-> "1", "", "2", "3" sondern nur "1","2","3"Dein Problem ist, dass am Beginn deines String '\0' stehen, für strtok ist der String also leer; es muss also heißen:
strtok( cl->buff+4, ":" )
-
Wutz schrieb:
etwas für Kenner:
...
- strtok übergeht aufeinanderfolgende TrennzeichenUnd das liest der Kenner nicht aus dem Namen? Nicht einmal der Kenner von ANSI C99?