strtof-Funktion wie benutzbar?

Gast #761389
Lesenswert?

Hallo,

wie kann ich diese Funktion benutzen:

float strtof( const char *nptr, char **endptr);

was muss ich für "const char *nptr" und "char **endptr" übergeben? Kann 
mir jemand einen kleinen Beispiel geben, wie ich mit der Funktionen 
einen String in float konvertieren kann?

Noch eine Frage:
was hat "const char *nptr" zu bedeuten? ich meine wieso muss ich einen 
konstanten Char-Zeiger übergeben?

wenn ich sowas mache:
char c = 0x25;
const char *nptr = &c;
bekomme ich Fehlermeldung "illegale Konvertierung von "char" zu "const 
char *"..
ich verstehe es nicht richtig, bin für jede Erklärung sehr dankbar

Thx
#761432
Lesenswert?

const char *nptr ist ein pointer auf ein konstantes char objekt, daher 
ist das in deinem fall ein fehler, da dein c ja nicht const ist.
das const in der deklaration von strtof() besagt nur, dass dein 
uebergabeparameter, also in dem fall dein char* als konstante uebergeben 
wird, sprich jeder versuch *nptr innerhalb von strtof() zu aendern 
resultiert in einem fehler zur compile-zeit. deshalb muss aber *nptr 
ausserhalb von strtof() nicht const sein.
Gast #761450
Lesenswert?

z.B. so.
1
float blah;
2
char meintollerstring[] = "3.14";
3
blah = strtof(meintollerstring, NULL);

"If endptr is not NULL, a pointer to the character after the last 
character used in the conversion is stored in the location referenced by 
endptr."

endptr ist ein Ausgabeparameter, wenn dich der nicht interessiert, 
übergib einfach einen Nullpointer.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren