Condividi tramite


strtoimax, _strtoimax_l, wcstoimax_wcstoimax_l

Converte una stringa in un valore intero con il tipo Integer con segno supportato più grande.

Sintassi

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
);

Parametri

strSource
Stringa con terminazione Null da convertire.

endptr
Puntatore al carattere che interrompe la lettura.

base
Base numerica da usare.

locale
Impostazioni locali da usare.

Valore restituito

strtoimax restituisce il valore rappresentato nella stringa strSource, tranne quando la rappresentazione potrebbe causare un overflow, nel qual caso restituisce INTMAX_MAX o INTMAX_MIN e errno viene impostato su ERANGE. La funzione restituisce 0 se è non possibile eseguire alcuna conversione. wcstoimax restituisce i valori in modo analogo a strtoimax.

INTMAX_MAX e INTMAX_MIN sono definiti in stdint.h.

Se strSource è NULL o base è diverso da zero e minore di 2 o maggiore di 36, errno viene impostato su EINVAL.

Per altre informazioni sui codici restituiti, vedere errno, _doserrno, _sys_errliste _sys_nerr.

Osservazioni:

La funzione strtoimax converte strSource in un valore intmax_t. La versione a caratteri wide di strtoimax è wcstoimax. Il relativo argomento strSource è una stringa di caratteri wide. In caso contrario, il comportamento di queste funzioni è identico. Entrambe le funzioni interrompono la lettura della stringa strSource al primo carattere che non possono riconoscere come parte di un numero. Può trattarsi del carattere Null di terminazione oppure può essere il primo carattere numerico maggiore o uguale a base.

L'impostazione della LC_NUMERIC categoria delle impostazioni locali determina il riconoscimento del carattere radix in strSource. Per altre informazioni, vedere setlocale, _wsetlocale. Le funzioni senza il suffisso _l usano le impostazioni locali correnti. _strtoimax_l e _wcstoimax_l sono identiche alle funzioni corrispondenti con il suffisso _l, ma usano le impostazioni locali passate. Per altre informazioni, vedere Locale.

Se endptr non NULLè , un puntatore al carattere che ha arrestato l'analisi viene archiviato nella posizione a endptrcui punta . Se è non possibile eseguire alcuna conversione (non vengono trovate cifre valide o viene specificata una base non valida), il valore di strSource viene archiviato in corrispondenza della posizione a cui punta endptr.

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _MBCS non definito _MBCS definito _UNICODE definito
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

strtoimax prevede che strSource punti a una stringa nel formato seguente:

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

whitespace può essere costituito da caratteri di spazio e tabulazione, che vengono ignorati. digits indica una o più cifre decimali. letters corrisponde a una o più lettere da 'a' a 'z' (o da 'A' a 'Z'). Il primo carattere che non rientra in questo modulo interrompe l'analisi. Se base è compreso tra 2 e 36, viene usato come base del numero. Se base è 0, per determinare la base vengono usati i caratteri iniziali della stringa a cui punta strSource. Se il primo carattere è '0' e il secondo carattere non è 'x' o 'X', la stringa viene interpretata come un numero intero ottale. Se il primo carattere è '0' e il secondo carattere è 'x' o 'X', la stringa viene interpretata come integer esadecimale. Se il primo carattere è compreso tra '1' e '9', la stringa viene interpretata come integer decimale. Alle lettere da 'a' a 'z' (o da 'A' a 'Z') vengono assegnati i valori da 10 a 35. Sono consentite solo le lettere con valori assegnati minori di base. Il primo carattere non compreso nell'intervallo della base interrompe la lettura. Ad esempio, se base è 0 e il primo carattere letto è '0', si presuppone un intero ottale e il carattere '8' o '9' interromperà la lettura.

Requisiti

Ciclo Intestazione obbligatoria
strtoimax, _strtoimax_l, wcstoimax_wcstoimax_l <inttypes.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Conversione dati
impostazioni locali
localeconv
setlocale, _wsetlocale
Funzioni string to numeric value (Da stringa a valore numerico)
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