Partager via


strtoumax, , _strtoumax_lwcstoumax, ,_wcstoumax_l

Convertit les chaînes en valeur entière du type d’entier non signé pris en charge le plus grand.

Syntaxe

uintmax_t strtoumax(
   const char *strSource,
   char **endptr,
   int base
);
uintmax_t _strtoumax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
uintmax_t wcstoumax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
uintmax_t _wcstoumax_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

strtoumax retourne la valeur convertie, le cas échéant, ou UINTMAX_MAX en cas de dépassement de capacité positif. strtoumax retourne 0 si aucune conversion ne peut être effectuée. wcstoumax retourne des valeurs de façon analogue à strtoumax. 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 valeur entière uintmax_t.

strtoumax 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. Il peut s’agir du caractère null de fin, ou il peut s’agir du premier caractère numérique supérieur ou égal à base. Le paramètre de catégorie LC_NUMERIC des paramètres régionaux détermine la reconnaissance du caractère de base dans strSource. Pour plus d’informations, consultez setlocale, _wsetlocale. strtoumax et wcstoumax utilisent les paramètres régionaux actifs ; _strtoumax_l et _wcstoumax_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’était pas valide), la valeur de strSource est stockée à l’emplacement désigné par endptr.

La version à caractères larges de strtoumax est wcstoumax ; son argument strSource est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique.

Mappages de routines de texte générique

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tcstoumax strtoumax strtoumax wcstoumax
_tcstoumax_l strtoumax_l _strtoumax_l _wcstoumax_l

strtoumax 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' à 'z' (ou 'A' à '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 », la chaîne est interprétée comme un entier octal. Si le premier caractère est « 0 » et que le deuxième est « x » ou « X », la chaîne est interprétée comme étant 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 de « a » à « z » (ou de « A » à « Z ») se voient affecter des valeurs comprises entre 10 et 35 ; seules sont autorisées les lettres dont les valeurs affectées 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, si base est égal à 0 et que le premier caractère analysé est « 0 », il est considéré comme étant un entier octal et un caractère « 8 » ou « 9 » a pour effet d’arrêter l’analyse. strtoumax autorise un préfixe signe plus (+) ou signe moins (-) ; un signe moins de début indique que la valeur de retour est le complément des deux de la valeur absolue de la chaîne convertie.

Spécifications

Routine En-tête requis
strtoumax, , wcstoumax_strtoumax_l, ,_wcstoumax_l <inttypes.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_lwcstod, ,_wcstod_l
strtoimax, , _strtoimax_lwcstoimax, ,_wcstoimax_l
strtol, , wcstol_strtol_l, ,_wcstol_l
strtoul, , _strtoul_lwcstoul, ,_wcstoul_l
strtoll, , _strtoll_lwcstoll, ,_wcstoll_l
atof, , _atof_l_wtof, ,_wtof_l