strtol, wcstol, _strtol_l, _wcstol_l

Convertissez des chaînes en valeur long entière.

Syntaxe

long strtol(
   const char *string,
   char **end_ptr,
   int base
);
long wcstol(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base
);
long _strtol_l(
   const char *string,
   char **end_ptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base,
   _locale_t locale
);

Paramètres

string
Chaîne se terminant par un caractère Null à convertir.

end_ptr
Paramètre de sortie, défini sur le caractère après le dernier caractère interprété. Ignoré, si NULL.

base
Base numérique à utiliser.

locale
Paramètres régionaux à utiliser.

Valeur retournée

strtol, wcstol, et _strtol_l_wcstol_l retourne la valeur représentée dans string. Ils retournent 0 si aucune conversion n’est possible. Lorsque la représentation provoquerait un dépassement de capacité, ils retournent LONG_MAX ou LONG_MIN.

errno est défini sur ERANGE la valeur si le dépassement de capacité ou le flux de sortie se produit. Elle est définie EINVAL si string c’est NULL. Ou, s’il base est différent de zéro et inférieur à 2, ou supérieur à 36. Pour plus d’informations sur , et d’autres ERANGEcodes de retour, consultez errno, _doserrno, _sys_errlistet _sys_nerr. EINVAL

Notes

Les strtolfonctions , et les _wcstol_lwcstol_strtol_lfonctions sont converties string en .long Ils arrêtent la lecture string au premier caractère non reconnu dans le cadre d’un nombre. Il peut s’agir du caractère null de fin, ou du premier caractère alphanumérique supérieur ou égal à base.

wcstol et _wcstol_l sont des versions à caractères larges de strtol et _strtol_l. Leur string argument est une chaîne à caractères larges. Ces fonctions se comportent de la même façon que strtol dans le _strtol_l cas contraire. Le paramètre de catégorie des LC_NUMERIC paramètres régionaux détermine la reconnaissance du caractère radix (le marqueur fractionnaire ou le point décimal) en string. strtol Fonctions et wcstol utilisation des paramètres régionaux actuels. _strtol_l et _wcstol_l utilisez les paramètres régionaux passés à la place. Pour plus d’informations, consultez [setlocale] et Paramètres régionaux.

Quand end_ptr c’est NULLle cas, il est ignoré. Sinon, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement vers lequel pointe end_ptr. Aucune conversion n’est possible si aucun chiffre valide n’est trouvé ou si une base non valide est spécifiée. La valeur de celle-ci string est ensuite stockée à l’emplacement vers lequel pointe end_ptr.

strtol s’attend à ce que string pointe vers une chaîne au format suivant :

[whitespace] [{+ | -}] [0 [{ x | X }]] [alphanumerics]

Crochets ([ ]) entourent les éléments facultatifs. Accolades et une barre verticale ({ | }) entourent des alternatives pour un seul élément. whitespace peut contenir des espaces et des tabulations, qui sont ignorés. alphanumericssont des chiffres décimaux ou des lettres 'a' à travers (ou 'A' à travers 'z''Z'). Le premier caractère qui ne correspond pas à ce formulaire arrête l’analyse. Si base la valeur est comprise entre 2 et 36, elle est utilisée comme base du nombre. Si base c’est 0le cas, les caractères initiaux de la chaîne pointée par string sont utilisés pour déterminer la base. Si le premier caractère est 0, et le deuxième caractère n’est pas 'x' ou 'X', la chaîne est interprétée comme un entier octal. Si le premier caractère est '0' et le deuxième caractère ou 'x''X', la chaîne est interprétée comme un entier hexadécimal. Si le premier caractère est '1' à travers '9', la chaîne est interprétée comme un entier décimal. Les lettres 'a' à travers 'z' (ou 'A' à 'Z') sont affectées aux valeurs 10 à 35. L’analyse autorise uniquement les lettres dont les valeurs sont inférieures baseà . Le premier caractère situé en dehors de la plage de la base a pour effet d’arrêter l’analyse. Par exemple, supposons que commence string par "01". Si base c’est 0le cas, le scanneur suppose qu’il s’agit d’un entier octal. Un '8' ou '9' un caractère arrête l’analyse.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcstol strtol strtol wcstol
_tcstol_l _strtol_l _strtol_l _wcstol_l

Spécifications

Routine En-tête requis
strtol <stdlib.h>
wcstol <stdlib.h> ou <wchar.h>
_strtol_l <stdlib.h>
_wcstol_l <stdlib.h> ou <wchar.h>

Les _strtol_l fonctions et _wcstol_l les fonctions sont spécifiques à Microsoft et ne font pas partie de la bibliothèque C Standard. Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Consultez l’exemple pour strtod.

Voir aussi

Conversion de données
Paramètres régionaux
localeconv
setlocale, _wsetlocale
Chaîne à fonctions de valeur numérique
strtod, _strtod_l, wcstod, _wcstod_l
strtoll, _strtoll_l, wcstoll, _wcstoll_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l