strtol, wcstol, _strtol_l, _wcstol_l
Converte le stringhe in un valore long integer.
long strtol(
const char *nptr,
char **endptr,
int base
);
long wcstol(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
long _strtol_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Parametri
nptr
Stringa con terminazione null da convertire.endptr
Puntatore al carattere che interrompe la scansione.base
Base numerica da utilizzare.locale
Impostazioni locali da utilizzare.
Valore restituito
strtol restituisce il valore rappresentato nella stringa nptr, tranne quando la rappresentazione può provocare un overflow, nel qual caso restituisce LONG_MAX o LONG_MIN.strtol restituisce 0 se può essere eseguita nessuna conversione.wcstol restituisce i valori analogamente a strtol.Per entrambe le funzioni, errno viene impostato su ERANGE se si verifica un overflow o un underflow.
Vedere _doserrno, errno, _sys_errlist, e _sys_nerr per ulteriori informazioni su questi, e altri, codici restituiti.
Note
La funzione strtol converte nptr in un long.La funzione strtol interrompe la lettura della stringa nptr al primo carattere che non riconosce come parte di un numero.Questo può essere dovuto ad un carattere di terminazione null, oppure al primo carattere numerico maggiore o uguale a base.
wcstol è una versione a caratteri estesi di strtol; l'argomento nptr è una stringa di caratteri estesi.Altrimenti queste funzioni si comportano in modo identico.
Mapping di routine a Testo generico
TCHAR.H routine |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
L'impostazione locale corrente di categoria LC_NUMERIC determina il riconoscimento del carattere radice in nptr*;* per ulteriori informazioni, vedere setlocale.Le funzioni senza il suffisso _l utilizzano le impostazioni locali correnti, _strtol_l e _wcstol_l sono identiche alle corrispondenti funzioni senza il suffisso _l con la differenza che utilizzano le impostazioni locali passategli.Per ulteriori informazioni, vedere Impostazioni locali.
Se endptr non è NULL, il puntatore al carattere che blocca la scansione viene memorizzato nella locazione di memoria indicata da endptr.Se nessuna conversione può essere eseguita (nessuna cifra valida è stata trovata o è stata specificata una base non valida), il valore di nptr viene archiviato all'indirizzo puntato da endptr.
strtol richiede che nptr punti ad una stringa nel seguente formato:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
Un whitespace può consistere di caratteri di spazio e di tab, che vengono ignorati; digits sono una o più cifre decimali.Il primo carattere non idoneo interrompe la scansione.Se base è compreso tra 2 e 36, allora viene utilizzato come base del numero.Se base è 0, i caratteri iniziali della stringa puntata da nptr vengono utilizzati per determinare la base.Se il primo carattere è 0 e il secondo carattere non è 'x' o 'X', la stringa viene interpretata come intero ottale; in caso contrario, viene interpretata come numero decimale.Se il primo carattere è '0' e il secondo carattere è 'x' o 'X', la stringa viene interpretata come intero esadecimale.Se il primo carattere è '1' e '9', la stringa viene interpretata come intero decimale.Alle lettere da 'a' a 'z' (o da 'A' a 'Z') sono assegnati i valori da 10 a 35; solo lettere con valori assegnati minori della base sono permesse.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> o <wchar.h> |
_strtol_l |
<stdlib.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.
Esempio
Vedere l'esempio relativo a strtod.
Equivalente .NET Framework
Vedere anche
Riferimenti
Stringa alle funzioni di valore numerico
strtod, _strtod_l, wcstod, _wcstod_l