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:
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;
}
#include <stdio.h> steht dort lediglich für printf. Es sollen, wie bereits gesagt, keine Funktionen aus der Laufzeitbibliothek verwendet werden.
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:
Code:
3.141592
-3.141590
78.000000
-78.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
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 )


Musterlösung: http://nopaste.free-hack.com/index.php?id=e5968ed60c


Viel Spaß + Erfolg.
mfG. BlackBerry