|
long
int strtol(const char *nptr, char **endptr, int base);
Convierte la posición inicial a
la cual señala nptr a representación long int. Primero
divide en tres partes la cadena de entrada: una secuecia inicial
, posiblemente vacía, de caracteres en blanco ( tal y como
se define en la función isspace), una secuencia sujeto parecida
a un entero representado en alguna raíz o base determinada
por el valor de base; y una cadena final de uno o más caracteres
reconocibles, que incluyen el carácter nulo de terminación
de la cadena de entrada. A continuación, intenta convertir
la secuencia sujeto a un entero, y devuelve el resultado.
Si el valor de base es cero, la forma expandida de la secuencia
sujeto es una constante entera , precadida de un signo más
o un signo menos opcional, pero no incluyendo un sufijo entero.Si
el valor de base es entre 2 y 36, la forma esperada de la secuencia
sujeto es una secuencia de letras y dígitos que representan
un entero con la raíz o base especificada por base, precedida
en forma opcional por un signo más o menos, pero sin incluir
un sufijo entero. Las letras a (o A) hasta z (o Z) reciben los valores
10 a 35; sólo se permiten aquellas letras cuyos valores adscritos
sean menores que el de la secuencia de letras y de dígitos,
a continuación del signo, si en que está presente.
La secuencia sujeto se define como la subsecuencia inicial más
extensa de la secuencia de entrada, empezando con el primer carácter
que no sea de espacio en blanco, esto es, de la forma esperada.
La secuencia sujeto no contiene ningún carácter, si
la cadena de entrada está vacia o está formada sólo
por caracteres en blanco o si el primer carácter distinto
de espacio en blanco, que está en primer término,
es distinto de un signo, de una letra o de un dígito permisible.
Si la secuencia sujeto tiene la forma esperada y el valor base es
cero, la secuencia de caracteres que se inicia con el primer dígito
se interpreta como una constante entera.Si la secuencia sujeto tiene
la forma esperada y el valor de la base es entre 2 y 36, se utiliza
como base para la conversión, dándole a cada letra
su valor como se especifica arriba. Si la secuencia sujeto comienza
con un signo menos, el valor que resulta de la conversión
se hace negativo. Un apuntador a la cadena final se almacena en
el objeto al cual señala endptr, siempre y cuando que endptr
no sea un apuntador nulo.
Si la secuencia sujeto está vacia o no tiene la forma esperada,
no se llevará a cabo la conversión;el valor de nptr
se almacena en el objeto al cual señala endptr, siempre y
cuando endptr no sea un apuntador nulo.
La función strtod devuelve el valor convertido si es que
hubiera alguno. Si no se ha ejecutado conversión, devuelve
cero. Si el valor correcto queda fuera del rango de los valores
representables, se devuelve LONG_MAX o LONG_MIN (según el
signo del valor), y se almacena el valor de la macro ERANGE en errno.
unsigned
long int strtoul(const char *nptr, char **endptr, int base);
Convierte la porción inicial de la cadena a la cual señala
nptr a una representación unsigned long int. La fución
strtoul funciona de forma identica a la función strtol. La
función strtoul devuelve el valor covertido, si es que hay
alguno. Se devuelve cero, si no puedo llevar a cabo la conversión.Si
el valor correcto queda por fuera del rango de los valores representables,
se devuelve ULONG_MAX , y se almacana el valor de la macro ERANGE
en errno.
|
|