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