Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ strtol(3) — Ultrix WS 1.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

scanf(3s)

atof(3)

NAME

atof, atoi, atol, strtol, strtod − convert ASCII to numbers

SYNTAX

#include <math.h>
double atof(nptr)
char *nptr;

atoi(nptr)
char *nptr;

long atol(nptr)
char *nptr;

strtol(nptr, eptr, base)
char *nptr, **eptr;
int base;

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

DESCRIPTION

These functions convert a string pointed to by nptr to floating, integer, and long integer representation respectively.  The first unrecognized character ends the string. 

The atof function recognizes an optional string of spaces, then an optional sign, then a string of digits optionally containing a decimal point, then an optional ‘e’ or ‘E’ followed by an optionally signed integer.

The atoi and atol functions recognize an optional string of spaces, then an optional sign, then a string of digits.

The strtol function returns as a long integer, the value represented by the character string nstr.  The string is scanned up to the first character inconsistent with the base.  Leading white-space characters are ignored. 

If the value of eptr is not (char **) NULL, a pointer to the character terminating the scan is returned in **eptr.  If no integer can be formed, **eptr
 is set to nstr, and zero is returned. 

If base is positive and not greater than 36, it is used as the base for conversion.  After an optional leading sign, leading zeros are ignored, and "0x" or "0X" is ignored if base is 16. 

If base is zero, the string itself determines the base thus:  After an optional leading sign, a leading zero indicates octal conversion, and a leading "0x" or "0X" hexadecimal conversion.  Otherwise, decimal conversion is used. 

Truncation from long to int can take place upon assignment, or by an explicit cast. 

The strtod function returns as a double-precision floating point number, the value represented by the character string pointed to by nptr.  The string is scanned up to the first unrecognized character. 

The strtod function recognizes an optional string of white-space characters, as defined by isspace is ctype(,), then a string of digits optionally containing a decimal point, then an optional sign, then a string of digits optionally containing a decimal point, then an optional e or E followed by an optional sign or space, followed by an integer. 

If the value if eptr is not (char **)NULL, a pointer to the character terminating the scan is returned in the location pointed to by eptr.  If no number can be formed, *eptr is set to nptr, and zero is returned. 

DIAGNOSTICS

The atof function returns HUGE if an overflow occurs, and a 0 value if an underflow occurs. HUGE is defined in <math.h>.

The strtod function returns HUGE (according to the sign of the value), if the correct value would cause overflow, and errno is set to ERANGE. 

If the correct value would cause underflow, zero is returned and errno is set to ERANGE. 

SEE ALSO

scanf(3s)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026