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 ERANGE
codes de retour, consultez errno
, _doserrno
, _sys_errlist
et _sys_nerr
. EINVAL
Notes
Les strtol
fonctions , et les _wcstol_l
wcstol
_strtol_l
fonctions 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 NULL
le 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. alphanumerics
sont 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 0
le 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 0
le 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 routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_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