STRTOL |
Chaîne à entier long |
---|---|
Langage C++ | cstdlib (stdlib.h) |
Syntaxe
long strtol(const char *str1,char **fin,int base) |
Paramètres
Nom | Description |
---|---|
str1 | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ contenant le nombre. |
fin | Ce paramètre retourne un pointeur à la fin du nombre dans la chaîne de caractères ASCIZ. |
base | Ce paramètre permet d'indiquer la base numérique du nombre à extraire (1 à 36). |
Description
Cette fonction permet de convertir la chaîne de caractères en nombre de type «long».
Remarques
- La fonction strtol() convertit la représentation sous le format d'une chaîne de caractères d'un nombre entreposé dans la chaîne de caractères pointée par str1 en un long et renvoie le résultat. La base du nombre est déterminée par base. Si base est zéro, alors la base est déterminée par des règles régissant la spécification constante. Si base est différent de zéro, alors il doit être compris entre 2 et 36.
- La fonction strtol() fonctionne comme suit. Tout d'abord, tout espace blanc dans la chaîne de caractères pointée par str1 est supprimé. Ensuite, chaque caractère comprenant le numéro est lu. Tout caractère ne pouvant pas faire partie d'un nombre entier long entraînera l'arrêt de ce processus. Cette situation inclut les espaces blancs, la ponctuation et les caractères. Enfin, fin est défini pour pointer vers le reste, le cas échéant, de la chaîne de caractères d'origine. Cela signifie que si la fonction strtol() est appelé avec "100 gladir", la valeur 100L sera renvoyée et fin pointera vers l'espace précédant "gladir".
- Si le résultat ne peut pas être représenté par un entier long, la fonction strtol() renvoie LONG_MAX ou LONG_MIN et l'erreur globale est définie sur ERANGE, indiquant une erreur d'intervalle. Si aucune conversion n'a lieu, zéro est renvoyé.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
- #include <iostream>
- #include <cstdlib>
-
- int main()
- {
- char *s, *sr;
- s = "0";
- std::cout << "0 = " << strtol(s,&sr,10) << std::endl;
- s = "1";
- std::cout << "1 = " << strtol(s,&sr,10) << std::endl;
- s = "123";
- std::cout << "123 = " << strtol(s,&sr,10) << std::endl;
- s = "-123";
- std::cout << "-123 = " << strtol(s,&sr,10) << std::endl;
- s = "G";
- std::cout << "G = " << strtol(s,&sr,10) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
0 = 01 = 1
123 = 123
-123 = -123
G = 0
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - atol
Langage de programmation - C++ - Référence procédures et fonctions - strtoul
Langage de programmation - C - Référence procédures et fonctions - strtol
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 269.
Dernière mise à jour : Lundi, le 3 août 2015