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");
	}