Definition | #include <stdlib.h> double strtod(const char *s, char **zg); Diese Funktionen wandeln eine Zeichenkette, auf die s zeigt, in eine Gleitkommazahl um. Die umzuwandelnde Zeichenkette kann wie folgt aufgebaut sein:
Für tab sind alle Steuerzeichen für „Zwischenraum“ zulässig (siehe Definition bei
Wenn zg nicht als NULL-Zeiger übergeben wird, erhält man von Ist zg ein NULL-Zeiger, wird
| |
Returnwert | Gleitkommazahl vom Typ | |
für Zeichenketten, die eine wie oben beschriebene Struktur haben und einen Zahlenwert darstellen, der im zulässigen Gleitkommabereich liegt. | ||
| 0 | für Zeichenketten, die nicht der oben beschriebenen Syntax entsprechen bzw. nicht mit umwandelbaren Zeichen beginnen. |
| +/-HUGE_VAL | abhängig vom Funktionstyp und Vorzeichen des Ergebnisses, für Zeichenketten, deren Zahlenwert außerhalb des zulässigen Gleitkommabereichs liegt. |
Hinweis | Das Dezimalpunktzeichen (Punkt oder Komma) in der umzuwandelnden Zeichenkette wird durch die Lokalität (Kategorie LC_NUMERIC) beeinflusst. Voreingestellt ist der Punkt. | |
Beispiel | Folgendes Programm wandelt eine beim Aufruf (Enter Options) übergebene Zeichenkette in die entsprechende Gleitkommazahl um und gibt das erste ggf. nicht umwandelbare Zeichen aus. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) /* Zahlen werden als Zeichenketten!! übergeben. Eine Umwandlung ist erforderlich, falls der Zahlenwert benötigt wird */ { char *p; printf("floating : %f\n", strtod(argv[1], &p)); putchar(*p); return 0; } | |
Siehe auch | atof, atoi, atol, strtol, strtoul |