_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l

Converte una stringa in un valore unsigned __int64.

Sintassi

unsigned __int64 _strtoui64(
   const char *strSource,
   char **endptr,
   int base
);
unsigned __int64 _wcstoui64(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
unsigned __int64 _strtoui64_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned __int64 _wcstoui64_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

_strtoui64 restituisce il valore rappresentato nella stringa strSource, tranne quando la rappresentazione potrebbe causare un overflow, nel qual caso restituisce _UI64_MAX. _strtoui64 restituisce 0 se è non possibile eseguire alcuna conversione.

_UI64_MAX è definito in LIMITS.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 _strtoui64 converte strSource in un valore unsigned __int64. _wcstoui64 è una versione a caratteri wide di _strtoui64. L'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.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificarlo, vedere Stato globale in CRT.

Mapping di routine di testo generico

TCHAR.H Routine _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tcstoui64 _strtoui64 _strtoui64 _wcstoui64
_tcstoui64_l _strtoui64_l _strtoui64_l _wcstoui64_l

L'impostazione di categoria delle LC_NUMERIC impostazioni locali correnti determina il riconoscimento del carattere radix in strSource. Per altre informazioni, vedere setlocale. Le funzioni senza il suffisso _l usano le impostazioni locali correnti. _strtoui64_l e _wcstoui64_l sono identiche alle funzioni corrispondenti senza 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.

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

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

Un whitespace oggetto può essere costituito da spazi e caratteri di tabulazione, che vengono ignorati. digits sono una o più cifre decimali. letters sono una o più delle lettere 'a' da 'z' (o 'A' da '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 analizzato è '0', si presuppone un Integer ottale e il carattere '8' o '9' arresterà l'analisi.

Requisiti

Funzione Intestazione obbligatoria
_strtoui64 <stdlib.h>
_wcstoui64 <stdlib.h> oppure <wchar.h>
_strtoui64_l <stdlib.h>
_wcstoui64_l <stdlib.h> oppure <wchar.h>

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

Esempio

// crt_strtoui64.c
#include <stdio.h>

unsigned __int64 atoui64(const char *szUnsignedInt) {
   return _strtoui64(szUnsignedInt, NULL, 10);
}

int main() {
   unsigned __int64 u = atoui64("18446744073709551615");
   printf( "u = %I64u\n", u );
}
u = 18446744073709551615

Vedi anche

Conversione dei dati
impostazioni locali
localeconv
setlocale, _wsetlocale
Funzioni string to numeric value (Da stringa a valore numerico)
strtod, _strtod_l, wcstod, _wcstod_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l