strtol
, wcstol
, _strtol_l
_wcstol_l
Convertire le stringhe in un long
valore intero.
Sintassi
long strtol(
const char *string,
char **end_ptr,
int base
);
long wcstol(
const wchar_t *string,
wchar_t **end_ptr,
int base
);
long _strtol_l(
const char *string,
char **end_ptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *string,
wchar_t **end_ptr,
int base,
_locale_t locale
);
Parametri
string
Stringa con terminazione Null da convertire.
end_ptr
Parametro di output, impostato per puntare al carattere dopo l'ultimo carattere interpretato. Ignorato, se NULL
.
base
Base numerica da usare.
locale
Impostazioni locali da usare.
Valore restituito
strtol
_strtol_l
, wcstol
, e _wcstol_l
restituiscono il valore rappresentato in string
. Restituiscono 0 se non è possibile eseguire alcuna conversione. Quando la rappresentazione provocherebbe un overflow, restituiscono LONG_MAX
o LONG_MIN
.
errno
è impostato su ERANGE
se si verifica l'overflow o l'underflow. È impostato su EINVAL
se string
è NULL
. Oppure, se base
è diverso da zero e minore di 2 o maggiore di 36. Per altre informazioni su ERANGE
, EINVAL
e altri codici restituiti, vedere errno
, _doserrno
_sys_errlist
, e _sys_nerr
.
Osservazioni:
Le strtol
funzioni , _strtol_l
wcstol
, e _wcstol_l
converteno string
in un oggetto long
. Interrompono la lettura string
al primo carattere non riconosciuto come parte di un numero. Può trattarsi del carattere null di terminazione o del primo carattere alfanumerico maggiore o uguale a base
.
wcstol
e _wcstol_l
sono versioni a caratteri wide di strtol
e _strtol_l
. Il relativo string
argomento è una stringa di caratteri wide. Queste funzioni si comportano in modo identico a strtol
e _strtol_l
in caso contrario. L'impostazione della LC_NUMERIC
categoria delle impostazioni locali determina il riconoscimento del carattere radix (marcatore frazionaria o separatore decimale) in string
. Le funzioni strtol
e wcstol
usano le impostazioni locali correnti. _strtol_l
e _wcstol_l
usare invece le impostazioni locali passate. Per altre informazioni, vedere [setlocale
] e Impostazioni locali.
Quando end_ptr
è NULL
, viene ignorato. In caso contrario, un puntatore al carattere che ha arrestato l'analisi viene archiviato nella posizione a end_ptr
cui punta . Non è possibile eseguire alcuna conversione se non vengono trovate cifre valide o se viene specificata una base non valida. Il valore di string
viene quindi archiviato nella posizione a end_ptr
cui punta .
strtol
prevede che string
punti a una stringa nel formato seguente:
[] [
whitespace
{+
|-
}] [0
[{x
|X
}]] [alphanumerics
]
Parentesi quadre ([ ]
) racchiudono gli elementi facoltativi. Parentesi graffe e barre verticali ({ | }
) racchiudono alternative per un singolo elemento. whitespace
può essere costituito da spazi e caratteri di tabulazione, che vengono ignorati. alphanumerics
sono cifre decimali o lettere 'a'
da 'z'
a (o '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
, i caratteri iniziali della stringa a cui string
punta vengono utilizzati per determinare la base. 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 è e il secondo carattere è '0'
'x'
o 'X'
, la stringa viene interpretata come intero esadecimale. Se il primo carattere è '1'
attraverso '9'
, la stringa viene interpretata come un numero intero decimale. Alle lettere 'a'
da 'z'
(o 'A'
a 'Z'
) vengono assegnati i valori da 10 a 35. L'analisi consente solo lettere i cui valori sono minori di base
. Il primo carattere non compreso nell'intervallo della base interrompe la lettura. Si supponga, ad esempio, di string
iniziare con "01"
. Se base
è 0
, lo scanner presuppone che sia un numero intero ottale. Un '8'
carattere o '9'
arresta l'analisi.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine TCHAR.H | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> oppure <wchar.h> |
_strtol_l |
<stdlib.h> |
_wcstol_l |
<stdlib.h> oppure <wchar.h> |
Le _strtol_l
funzioni e _wcstol_l
sono specifiche di Microsoft, non fanno parte della libreria C standard. Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
Vedere l'esempio per strtod
.
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
strtoll
, _strtoll_l
, wcstoll
_wcstoll_l
strtoul
, _strtoul_l
, wcstoul
_wcstoul_l
atof
, _atof_l
, _wtof
_wtof_l