Forum: PC-Programmierung strtok Problem


von Knecht R. (Firma: Weihnachtsmann GmbH) (ruprecht)


Lesenswert?

Hallo zusammen,

ich versuche gerade einen String aus mehreren Kommazahlen zu zerlegen. 
Dazu verwende ich die Funktion "strtok". Leider bekomme ich immer nur 
den ersten Wert.

Inhalt des temp_string -> 00.053 01.210 023.122....usw

Mein Code:
1
C-Code
2
float ov1float,ov2float,...
3
char temp_string[512];
4
char *token;
5
6
token = strtok (temp_string," ");  
7
ov1float = atof (token);
8
if (token != NULL) {
9
   token = strtok (NULL," ");
10
   ov2float = atof (token);
11
}
nach diesem Codeaufruf ist
ov1float 00.053
ov2float aber 00.000

Wo mache ich hier den Fehler?

von Christoph M. (Firma: privat) (mauralix)


Lesenswert?

Nach jedem Tokenzerlegen wird ein 0-character angehängt!
siehe: http://www.cplusplus.com/reference/clibrary/cstring/strtok.html

Mein Blog: http://mauralix.blog.de

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Nicht if(), sondern eine while()-Schleife nehmen.

Und auch noch mal gedanklich in sich gehen, ob atof() wirklich einen 
Null-Pointer ab kann (Dokumentation lesen, ich habe es nicht im Kopf).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.