Namespaces
Variants

atoi, atol, atoll

From cppreference.net
< c ‎ | string ‎ | byte
Definido en el encabezado <stdlib.h>
int atoi ( const char * str ) ;
(1)
long atol ( const char * str ) ;
(2)
long long atoll ( const char * str ) ;
(3) (desde C99)

Interpreta un valor entero en una cadena de bytes apuntada por str . La base implícita es siempre 10 .

Descarta cualquier carácter de espacio en blanco hasta que se encuentre el primer carácter que no sea un espacio en blanco, luego toma tantos caracteres como sea posible para formar una representación válida de número entero y los convierte en un valor entero. El valor entero válido consta de las siguientes partes:

  • (opcional) signo más o menos
  • dígitos numéricos

Si el valor del resultado no puede ser representado, es decir, el valor convertido cae fuera del rango del tipo de retorno correspondiente, el comportamiento es indefinido.

Contenidos

Parámetros

str - puntero a la cadena de bytes terminada en nulo que se va a interpretar

Valor de retorno

Valor entero correspondiente al contenido de str en caso de éxito.

Si no se puede realizar ninguna conversión, 0 es retornado.

Notas

El nombre significa "ASCII a entero".

Ejemplo

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("%i\n", atoi(" -123junk"));
    printf("%i\n", atoi(" +321dust"));
    printf("%i\n", atoi("0"));
    printf("%i\n", atoi("0042")); // tratado como número decimal con ceros iniciales
    printf("%i\n", atoi("0x2A")); // solo el cero inicial se convierte descartando "x2A"
    printf("%i\n", atoi("junk")); // no se puede realizar ninguna conversión
    printf("%i\n", atoi("2147483648")); // UB: fuera del rango de int
}

Salida posible:

-123
321
0
42
0
0
-2147483648

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.22.1.2 Las funciones atoi, atol y atoll (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.22.1.2 Las funciones atoi, atol y atoll (p: 249)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.22.1.2 Las funciones atoi, atol y atoll (p: 341)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.20.1.2 Las funciones atoi, atol y atoll (p: 307)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.10.1.2 The atoi function
  • 4.10.1.3 The atol function

Véase también

convierte una cadena de bytes a un valor entero
(función)
convierte una cadena de bytes a un valor entero sin signo
(función)
(C95) (C99)
convierte una cadena ancha a un valor entero
(función)
(C95) (C99)
convierte una cadena ancha a un valor entero sin signo
(función)
Documentación de C++ para atoi , atol , atoll