beautypg.com

Strtod – Zilog Z8F0130 User Manual

Page 494

background image

Appendix B. C Standard Library

UM013037-1212

470

Zilog Developer Studio II – Z8 Encore!
User Manual

Returns

A pointer to the located string or a null pointer if the string is not found.

Example

char *ptr;

char s1[]="Production Languages";

char s2[]="Lang";

ptr=strstr(s1,s2);

strtod

Converts the string pointed to by nptr to

double

representation. The function recognizes

an optional leading sequence of white-space characters (as specified by the

isspace

function), then an optional plus or minus sign, then a sequence of digits optionally con-
taining a decimal point, then an optional letter e or E followed by an optionally signed
integer, then an optional floating suffix. If an inappropriate character occurs before the
first digit following the e or E, the exponent is taken to be zero.

The first inappropriate character ends the conversion. If endptr is not a null pointer, a
pointer to that character is stored in the object endptr points to; if an inappropriate charac-
ter occurs before any digit, the value of nptr is stored.

The sequence of characters from the first digit or the decimal point (whichever occurs
first) to the character before the first inappropriate character is interpreted as a floating
constant according to the rules of this section, except that if neither an exponent part or a
decimal point appears, a decimal point is assumed to follow the last digit in the string. If a
minus sign appears immediately before the first digit, the value resulting from the conver-
sion is negated.

Synopsis

#include

double strtod(char *nptr, char **endptr);

Returns

The converted value, or zero if an inappropriate character occurs before any digit. If the
correct value would cause overflow, plus or minus HUGE_VAL is returned (according to
the sign of the value), and the macro

errno

acquires the value ERANGE. If the correct

value causes underflow, zero is returned and the macro

errno

acquires the value

ERANGE.

Example

char *ptr;

char s[]="0.1456";