====== 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()]]