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_doserrnoet _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 NULLle 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 routine de texte générique

TCHAR.H Routine _UNICODE et _MBCS non défini _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 Xque 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