strtoul
, , _strtoul_l
wcstoul
, ,_wcstoul_l
Convertit les chaînes en valeur entière de type long non signée.
Syntaxe
unsigned long strtoul(
const char *strSource,
char **endptr,
int base
);
unsigned long _strtoul_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned long wcstoul(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned long _wcstoul_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Paramètres
strSource
Chaîne se terminant par un caractère Null à convertir.
endptr
Pointeur désignant le caractère qui arrête l’analyse.
base
Base numérique à utiliser.
locale
Paramètres régionaux à utiliser.
Valeur retournée
strtoul
retourne la valeur convertie, le cas échéant, ou ULONG_MAX
en cas de dépassement de capacité positif. strtoul
retourne 0 si aucune conversion ne peut être effectuée. wcstoul
retourne des valeurs de façon analogue à strtoul
. Pour les deux fonctions, errno
prend la valeur ERANGE
si un dépassement de capacité positif ou négatif se produit.
Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist
_doserrno
et _sys_nerr
.errno
Notes
Chacune de ces fonctions convertit la chaîne d’entrée strSource
en unsigned long
.
strtoul
arrête la lecture de la chaîne strSource
au premier caractère qu’elle ne peut pas reconnaître dans le cadre d’un nombre. Ce caractère peut être la fin NULL
, ou il peut s’agir du premier caractère numérique supérieur ou égal à base
. Le LC_NUMERIC
paramètre de catégorie des paramètres régionaux détermine la reconnaissance du caractère radix dans strSource
; pour plus d’informations, consultez setlocale
. strtoul
et wcstoul
utilisent les paramètres régionaux actifs ; _strtoul_l
et _wcstoul_l
sont identiques, sauf que ces fonctions utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.
Si endptr
ce n’est pas NULL
le cas, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement vers lequel pointe endptr
. Si aucune conversion ne peut être effectuée (aucun chiffre valide n’a été trouvé ou la base spécifiée n’est pas valide), la valeur de strSource
est stockée à l’emplacement désigné par endptr
.
wcstoul
est une version à caractères larges de strtoul
; son argument strSource
est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique.
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 |
---|---|---|---|
_tcstoul |
strtoul |
strtoul |
wcstoul |
_tcstoul_l |
strtoul_l |
_strtoul_l |
_wcstoul_l |
strtoul
s’attend à ce que strSource
pointe vers une chaîne au format suivant :
[whitespace] [{+ | -}] [0 [{ x | X }]] [digits | letters]
Un whitespace
espace et des tabulations peuvent être ignorés. digits
sont un ou plusieurs chiffres décimaux. letters
sont une ou plusieurs des lettres a
à travers z
(ou A
via 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
a la valeur 0, les premiers caractères de la chaîne désignée par strSource
servent à déterminer la base. Si le premier caractère est 0 et que le deuxième caractère n’est pas x
ou X
que la chaîne est interprétée comme un entier octal. Si le premier caractère est « 0 » et le deuxième caractère est x
ou X
, la chaîne est interprétée comme un entier hexadécimal. Si le premier caractère est un chiffre compris entre « 1 » et « 9 », la chaîne est interprétée comme étant un entier décimal. Les lettres a
à travers z
(ou A
à Z
) sont affectées aux valeurs 10 à 35 ; seules les lettres dont les valeurs attribuées sont inférieures à celles autorisées base
. Le premier caractère situé en dehors de la plage de la base a pour effet d’arrêter l’analyse. Par exemple, si base
est égal à 0 et que le premier caractère analysé est « 0 », il est supposé qu’il s’agit d’un entier octal et un caractère « 8 » ou « 9 » a pour effet de stopper l’analyse. strtoul
autorise la présence d’un signe plus (+
) ou moins (-
) en guise de préfixe ; la présence d’un signe moins de début indique que le signe de la valeur de retour est inversé.
Spécifications
Routine | En-tête requis |
---|---|
strtoul |
<stdlib.h> |
wcstoul |
<stdlib.h> ou <wchar.h> |
_strtoul_l |
<stdlib.h> |
_wcstoul_l |
<stdlib.h> ou <wchar.h> |
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
strtol
, , wcstol
_strtol_l
, ,_wcstol_l
atof
, , _atof_l
_wtof
, ,_wtof_l