ATOL |
Alpha à entier long |
---|---|
Langage C | stdlib.h |
Syntaxe
long atol(const char *str); |
Paramètres
Nom | Description |
---|---|
str | Ce paramètre permet d'indiquer la chaîne de caractères à convertir |
Description
Cette fonction convertie une chaîne de caractères en une valeur entière «long».
Algorithme
* Entrée : Une chaîne de caractères str représentant un nombre long * Sortie : Un nombre long MODULE ATOL(str) Initialiser index ← 0 Initialiser résultat ← 0 Initialiser signe ← 1 * Ignorer les espaces blancs initiaux TANT QUE str[index] est un espace blanc FAIRE Incrémenter index FIN TANT QUE * Vérifier le signe SI str[index] = '-' ALORS signe ← -1 Incrémenter index SINON SI str[index] = '+' ALORS Incrémenter index FIN SI * Lire les chiffres et les convertir en long BOUCLE TANT QUE str[index] est un chiffre FAIRE résultat ← (résultat x 10) + (valeur numérique de str[index]) Incrémenter index FIN BOUCLE TANT QUE RETOURNE résultat x signe |
Remarques
- La valeur à convertir doit être situé dans l'intervalle de -2 147 483 648 et 2 147 483 647.
- La conversion de la valeur contenu dans la chaîne de caractères s'arrête aussitôt que l'analyse ne trouve plus de chiffres. La fonction atol convertit une chaîne de caractères représentant un entier en une valeur de type long int. Elle interprète la chaîne comme un nombre en base 10, en ignorant les espaces blancs initiaux et en traitant un signe + ou - au début.
- Comportement sur une chaîne invalide : Si la chaîne de caractères passée à atol ne commence pas par une représentation valide d'un nombre, la fonction retourne zéro. Par exemple, atol("abc123") renverra 0 car il n'y a pas de chiffre en début de chaîne de caractères.
- Gestion des débordements : atol ne fournit pas de mécanisme explicite pour détecter les débordements. Si le nombre représenté dans la chaîne de caractères dépasse la capacité d'un long int, le comportement est indéfini, ce qui peut entraîner des résultats incorrects ou imprévisibles.
- Dépendance à la locale : atol ne prend pas en compte la locale. Cela signifie qu'elle ne gère pas correctement les formats spécifiques aux langues, comme les séparateurs de milliers ou les points décimaux dans certaines régions.
- Alternatives modernes : Les fonctions modernes comme strtol ou strtoll sont préférées à atol car elles offrent un meilleur contrôle, comme la détection explicite des erreurs (avec errno) et la gestion des bases autres que 10. atol est considéré comme une solution simple mais limitée.
- Usage limité dans les programmes modernes : atol est une fonction ancienne convenant pour des scénarios simples où un contrôle fin n'est pas nécessaire. Cependant, dans les applications modernes, des alternatives comme strtol ou l'utilisation des fonctionnalités des bibliothèques C++ (exemple, std::stol) sont préférées pour leur sécurité et leur robustesse.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
atol('12')=12atol('-7')=-7
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - atol
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 35.
Dernière mise à jour : Mardi, le 28 juillet 2015