#include <stdlib.h> // <cstdlib> en C++
long long atoll( const char * theString);
Cette fonction, signifiant ASCII to long long, permet de transformer une chaîne de caractères, contenant la représentation textuelle d'un
entier, en un entier très long (type long long
ou long long int
: ce sont des synonymes).
atoll
retourne la valeur 0 si la chaîne de caractères ne contient pas une représentation de valeur numérique.
Du coup, il n'est pas possible de distinguer la chaîne "0"
d'une chaîne ne contenant pas un nombre entier.
Si vous avez cette difficulté, veuillez préférer l'utilisation de la fonction strtoll
qui permet bien de distinguer les deux cas.
long long
a été introduit dans cette norme C ISO 1999.
long long
(ou long long int
).
Si la chaîne à convertir ne contient pas une donnée numérique entière, la valeur 0 vous sera retournée.
Sinon, une valeur de type long long
(ou long long int
) équivalente à la chaîne passée en paramètre vous sera retournée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> #include <stdlib.h> int main() { /* On test une très grande valeur */ long long value = atoll( "123456789123456789" ); printf( "value1 == %lld\n", value ); /* On test le cas de la valeur 0 */ value = atoll( "0" ); printf( "value2 == %lld\n", value ); /* On test le cas d'une chaîne ne contenant pas une donnée numérique */ value = atoll( "Toto" ); printf( "value3 == %lld\n", value ); return EXIT_SUCCESS; } |
Voici l'affichage produit par cet exemple :
$> gcc -o sample sample.c $> ./sample value1 == 123456789123456789 value2 == 0 value3 == 0 $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :