BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 9 Librerías Estándar
Teoría: Utilerías generales <stdlib.h>

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.