Hallo Forum,
mit dem Code eins möchte ich aus dem string die beiden Zahlenwerte als float herausknödeln. Die Forumssuche und mein 2kg/1000Seiten/1CD Buch c von A bis Z brachten leider nicht den erhofften Erkenntnisgewinn.
Der String wird in //eins: in vier Teile zerlegt, bei der Umwandlung in float gibt //eins: einen Komilierfehler aus.
Um den Fehler einzugrenzen, habe ich in //zwei: die Routine strtof explizit ausgeführt, hier wird der String in einen völlig anderen Wert umgewandelt.
Umgebung: Fedora10+gcc
Was mache ich da falsch?
Danke für die Antworten.
Code:#include <stdio.h> #include <string.h> //eins: int main (void){ char string[] = "AZ234.7 EL345.6"; int i = 1; char *ptr; float az, el; ptr = strtok(string, "Z L"); while(ptr != NULL){ if(i == 2){ az = strtof(%s,NULL); //kompilerfehler %s } if(i == 4){ el = strtof(%s,NULL); //kompilerfehler %s } printf("%d. Wort: %s\n",i++,ptr); ptr = strtok(NULL, " L"); } return 0; } //zwei: int main (void){ float x; char string[] = "341.9"; x = strtof(string, NULL); printf("\ndas ist der float %f", x);//falscher Wert printf("\n"); }
Lesezeichen