Namespaces
Variants

atoi, atol, atoll

From cppreference.net
< c ‎ | string ‎ | byte
Défini dans l'en-tête <stdlib.h>
int atoi ( const char * str ) ;
(1)
long atol ( const char * str ) ;
(2)
long long atoll ( const char * str ) ;
(3) (depuis C99)

Interprète une valeur entière dans une chaîne d'octets pointée par str . La base implicite est toujours 10 .

Ignore tous les caractères d'espacement jusqu'à ce que le premier caractère non-espace soit trouvé, puis prend autant de caractères que possible pour former une représentation valide de nombre entier et les convertit en une valeur entière. La valeur entière valide se compose des parties suivantes :

  • (optionnel) signe plus ou moins
  • chiffres numériques

Si la valeur du résultat ne peut pas être représentée, c'est-à-dire si la valeur convertie sort de la plage du type de retour correspondant, le comportement est indéfini.

Table des matières

Paramètres

str - pointeur vers la chaîne d'octets terminée par un caractère nul à interpréter

Valeur de retour

Valeur entière correspondant au contenu de str en cas de succès.

Si aucune conversion ne peut être effectuée, 0 est retourné.

Notes

Le nom signifie « ASCII vers entier ».

Exemple

#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")); // traité comme un nombre décimal avec des zéros en tête
    printf("%i\n", atoi("0x2A")); // seul le zéro initial est converti en ignorant "x2A"
    printf("%i\n", atoi("junk")); // aucune conversion ne peut être effectuée
    printf("%i\n", atoi("2147483648")); // UB : hors de la plage de int
}

Sortie possible :

-123
321
0
42
0
0
-2147483648

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.22.1.2 Les fonctions atoi, atol et atoll (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.22.1.2 Les fonctions atoi, atol et atoll (p: 249)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.22.1.2 Les fonctions atoi, atol et atoll (p: 341)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.20.1.2 Les fonctions atoi, atol et atoll (p : 307)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 4.10.1.2 La fonction atoi
  • 4.10.1.3 La fonction atol

Voir aussi

convertit une chaîne d'octets en une valeur entière
(fonction)
convertit une chaîne d'octets en une valeur entière non signée
(fonction)
(C95) (C99)
convertit une chaîne large en une valeur entière
(fonction)
(C95) (C99)
convertit une chaîne large en une valeur entière non signée
(fonction)
Documentation C++ pour atoi , atol , atoll