Partager via


strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l

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

Syntaxe

intmax_t strtoimax(
   const char *strSource,
   char **endptr,
   int base
);
intmax_t wcstoimax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
intmax_t _strtoimax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
intmax_t _wcstoimax_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

La fonction strtoimax retourne la valeur représentée dans la chaîne strSource, sauf dans le cas où la représentation entraînerait un dépassement de capacité positif (dans ce cas, elle retourne INTMAX_MAX ou INTMAX_MIN et errno prend la valeur ERANGE). La fonction retourne 0 si aucune conversion ne peut être effectuée. wcstoimax retourne des valeurs de façon analogue à strtoimax.

INTMAX_MAX et INTMAX_MIN sont définis dans stdint.h.

Si strSource a la valeur NULL ou que base est différent de zéro et inférieur à 2 ou supérieur à 36, errno prend la valeur EINVAL.

Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

La fonction strtoimax convertit strSource en intmax_t. La version à caractères larges de strtoimax est wcstoimax ; son argument strSource est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique. Les deux fonctions arrêtent de lire la chaîne strSource au premier caractère qu’elles ne peuvent 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 des LC_NUMERIC paramètres régionaux détermine la reconnaissance du caractère radix dans strSource; pour plus d’informations, voir setlocale, _wsetlocale. Les fonctions sans suffixe _l utilisent les paramètres régionaux actifs ; _strtoimax_l et _wcstoimax_l sont identiques aux fonctions correspondantes qui n’ont pas le suffixe _l, sauf qu’elles 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.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

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

[whitespace] [{+ | -}] [0 [{ x | X }]] [digits | letters]

whitespace peut être constitué d’espaces et de tabulations, qui sont ignorés ; digits se compose d’un ou plusieurs chiffres décimaux ; letters comprend une ou plusieurs lettres, de « a » à « z » (ou de « 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.

Spécifications

Routine En-tête requis
strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l <inttypes.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

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
strtoul, _strtoul_l, wcstoul, _wcstoul_l
strtoumax, _strtoumax_l, wcstoumax, _wcstoumax_l
atof, _atof_l, _wtof, _wtof_l