Worum geht es? Es soll eine "atof"-ähnliche Funktion entstehen (eine Funktion zur Umwandlung eines C-Strings in einen (signed) double)
Was soll damit erreicht werden? Ein besseres Verständnis von C-Strings und deren Bearbeitung, ohne spezielle Hilfsmittel (zB. Funktionen aus der Standardbibliothek).
Ich gebe folgenden Code vor:
#include <stdio.h> steht dort lediglich für printf. Es sollen, wie bereits gesagt, keine Funktionen aus der Laufzeitbibliothek verwendet werden.Code:#include <stdio.h> double _atof_(const char *); int main(void) { printf("%lf\n", _atof_("3.141592")); printf("%lf\n", _atof_("-3.14159")); printf("%lf\n", _atof_("78")); printf("%lf\n", _atof_("-78")); printf("%lf\n", _atof_("3.14159_")); printf("%lf\n", _atof_("3.141.59")); printf("%lf\n", _atof_("-3.")); printf("%lf\n", _atof_("-")); printf("%lf\n", _atof_("-b")); printf("%lf\n", _atof_("ABCDEFG")); return 0; }
Alle zugelassenen Hilfsmittel sind somit auf Variablen, Schleifen, If-Abfragen, Mehrfachauswahlen (switch), usw. beschränkt.
Die Funktion soll dem oben ausgeführten Funktionsprototyp entsprechen;
Name: _atof_ (die Unterstriche sind lediglich dafür da, eine Namenskollision zu vermeiden)
Rückgabetyp: (signed) double
Parameter: Zeiger auf einen const char (const char *)
Das Programm soll folgenden Text ausgeben:
Falls eine Zahl aufgrund ihrer Beschaffenheit nicht in einen double passt, muss kein [+|-] HUGE_VAL zurückgegeben werden (siehe: http://www.cplusplus.com/reference/c...dlib/atof.html )Code:3.141592 -3.141590 78.000000 -78.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Musterlösung: http://nopaste.free-hack.com/index.php?id=e5968ed60c
Viel Spaß + Erfolg.
mfG. BlackBerry


Zitieren






