====== atof() ======
atof ist definiert in der ''[[start|stdlib]]'', die in C über ''stdlib.h'', bzw. in C++ über ''cstdlib'' eingebunden wird.
===== Funktion =====
atof konvertiert einen ASCII-String in eine Fließkommazahl (ASCII to floatingpoint - atof).
Zunächst werden sämtliche Whitespaces (Leerzeichen, Tabs) übersprungen, bis die ersten Ziffern gefunden werden. Es darf ein + bzw. - der Zahl vorangestellt sein, der Dezimalpunkt wird beachtet und es der zu interpretierende String darf ein 'e' oder 'E' hinter der Ziffer haben, gefolgt von '+' bzw. '-' und dem Exponenten.
Werden Zeichen gefunden, die nicht interpretiert werden können, so wird die Konvertierung abgebrochen und die bisher interpretierte Zahl zurückgegeben.
Gültige Strings wären z.B. " 123", "+1232", "-42", "10E+3".
===== Signatur =====
#include
double atof( char const * str );
**str**: der zu konvertierende String \\
\\
**Return value**: die konvertiete Zahl als Double-Wert
===== Bemerkungen =====
Konnte keine Zahl konvertiert werden, weil der String leer oder aus nicht interpretierbaren Zeichen bestand (z.B. "abc") oder die zu konvertierende Zahl ist so klein, dass sie mit einem Double-Wert nicht dargestellt werden kann, so wird 0.0 zurückgegeben.
Ist die zu konvertierende Zahl so groß, dass sie nicht dargestellt werden kann, so wird [[HUGE_VAL]] mit entsprechendem positivem oder negativem Vorzeichen zurückgeliefert.
Die Umkehrfunktion, also einen ''double''-Wert in einen ASCII-String zu konvertierten ist über [[c:lib:stdio:sprintf()]] möglich.
===== Beispiel =====
#include
#include
int main( void )
{
char const * str = "47.11";
double value;
value = atof( str );
printf( "Wert des Strings \"%s\": %f\n", str, value );
return EXIT_SUCCESS;
}
**Ausgabe**:
Wert des Strings "47.11": 47.110000
===== siehe auch =====
[[start|stdlib]]: [[atoi()]], [[atol()]], [[strtod()]], [[strtol()]], [[strtoul()]] \\
[[c:lib:stdio:start|stdio]]: [[c:lib:stdio:sprintf()]]