La función atol () en C ++ interpreta el contenido de una cadena y devuelve su valor entero correspondiente.
atol () prototipo
long int atol (const char * str);
Está definido en el archivo de encabezado.
La función atol () toma una cadena como parámetro, interpreta su contenido como un número integral y devuelve el valor correspondiente en long int
.
Parámetros de atol ()
- str : una cadena que tiene la representación de un número entero.
atol () Valor de retorno
La función atol () devuelve:
- un
long int
valor (que se convierte de la cadena). - 0 si no se pudo realizar una conversión válida.
Si el valor convertido está fuera del rango, provoca un comportamiento indefinido.
Ejemplo 1: ¿Cómo funciona la función atol ()?
#include #include using namespace std; int main() ( char s() = "-114"; double number; cout << "Number in String = " << s << endl; number = atol(s); cout << "Number in Long Int = " << number; return 0; )
Cuando ejecute el programa, la salida será:
Número en cadena = -114 Número en int largo = -114
Un valor entero válido para la función atol () consta de un signo + o - opcional seguido de dígitos numéricos (0-9) . La función atol () no admite la función hexadecimal, infinito y NaN
expresión como atof ().
En general, un argumento entero válido para la función atol () tiene la siguiente forma:
(espacio en blanco) (- | +) (dígitos)
La función atol () ignora todos los espacios en blanco iniciales hasta que se encuentra el carácter primario que no es un espacio en blanco.
Luego, a partir de este carácter, toma tantos caracteres como sea posible que forman una representación de entero válida y los convierte en un valor int largo. Lo que quede de la cadena después del último carácter válido se ignora y no tiene ningún efecto en el resultado.
Ejemplo 2: función atol () con espacios en blanco y caracteres finales
#include #include using namespace std; int main() ( cout << "Number in String = " << " 13" << endl; cout << "Number in Long Int = " << atol(" 13") << endl << endl; cout << "Number in String = " << " 25 " << endl; cout << "Number in Long Int = " << atol(" 25 ") << endl << endl; cout << "Number in String = " << "41.90abcd" << endl; cout << "Number in Long Int = " << atol("41.90abcd") << endl << endl; // Returns 0 because of invalid conversion cout << "abcd14" << " to Long Int = " << atol("abcd14") << endl; return 0; )
Cuando ejecute el programa, la salida será:
Número en cadena = 13 Número en int largo = 13 Número en cadena = 25 Número en int largo = 25 Número en cadena = 41.90abcd Número en int largo = 41 abcd14 a int largo = 0