strtol, wcstol, _strtol_l, _wcstol_lstrtol, wcstol, _strtol_l, _wcstol_l

Converte le stringhe in un valore long integer.Convert strings to a long-integer value.

SintassiSyntax

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

ParametriParameters

nptr
Stringa con terminazione Null da convertire.Null-terminated string to convert.

endptr
Puntatore al carattere che interrompe la lettura.Pointer to character that stops scan.

base
Base numerica da usare.Number base to use.

locale
Impostazioni locali da usare.Locale to use.

Valore restituitoReturn Value

strtol restituisce il valore rappresentato nella stringa nptr, tranne quando la rappresentazione potrebbe causare un overflow, nel qual caso restituisce LONG_MAX o LONG_MIN.strtol returns the value represented in the string nptr, except when the representation would cause an overflow, in which case it returns LONG_MAX or LONG_MIN. strtol restituisce 0 se è non possibile eseguire alcuna conversione.strtol returns 0 if no conversion can be performed. wcstol restituisce i valori in modo analogo a strtol.wcstol returns values analogously to strtol. Per entrambe le funzioni, errno viene impostato su ERANGE in caso di overflow o underflow.For both functions, errno is set to ERANGE if overflow or underflow occurs.

Per altre informazioni su questo e altri codici restituiti, vedere _doserrno, errno, _sys_errlist e _sys_nerr.See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these and other return codes.

NoteRemarks

La funzione strtol converte nptr in un valore long.The strtol function converts nptr to a long. strtol interrompe la lettura della stringa nptr in corrispondenza del primo carattere che non riconosce come parte di un numero.strtol stops reading the string nptr at the first character it cannot recognize as part of a number. Potrebbe trattarsi del carattere Null di terminazione o del primo carattere numerico maggiore o uguale a base.This may be the terminating null character, or it may be the first numeric character greater than or equal to base.

wcstol è una versione a caratteri wide di strtol. L'argomento nptr è una stringa di caratteri wide.wcstol is a wide-character version of strtol; its nptr argument is a wide-character string. A parte ciò, queste funzioni si comportano in modo identico.These functions behave identically otherwise.

Mapping di routine di testo genericoGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE e _MBCS non definiti_UNICODE & _MBCS not defined _MBCS definito_MBCS defined _UNICODE definito_UNICODE defined
_tcstol strtol strtol wcstol
_tcstol_l _strtol_l _strtol_l _wcstol_l

L'impostazione della categoria LC_NUMERIC delle impostazioni locali correnti determina il riconoscimento del carattere di base nptr. Per altre informazioni, vedere setlocale.The current locale's LC_NUMERIC category setting determines recognition of the radix character in nptr; for more information, see setlocale. Le funzioni senza il suffisso _l usano le impostazioni locali correnti. _strtol_l e _wcstol_l sono identiche alle funzioni corrispondenti senza il suffisso _l, ma usano le impostazioni locali passate.The functions without the _l suffix use the current locale; _strtol_l and _wcstol_l are identical to the corresponding functions without the _l suffix except that they use the locale passed in instead. Per altre informazioni, vedere Locale.For more information, see Locale.

Se endptr non è NULL, un puntatore al carattere che ha interrotto la lettura viene archiviato in corrispondenza della posizione a cui punta endptr.If endptr is not NULL, a pointer to the character that stopped the scan is stored at the location pointed to by endptr. Se è non possibile eseguire alcuna conversione (non vengono trovate cifre valide o viene specificata una base non valida), il valore di nptr viene archiviato in corrispondenza della posizione a cui punta endptr.If no conversion can be performed (no valid digits were found or an invalid base was specified), the value of nptr is stored at the location pointed to by endptr.

strtol prevede che nptr punti a una stringa nel formato seguente:strtol expects nptr to point to a string of the following form:

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

whitespace può essere costituito da caratteri di spazio e tabulazione, che vengono ignorati. digits indica una o più cifre decimali.A whitespace may consist of space and tab characters, which are ignored; digits are one or more decimal digits. Il primo carattere che non corrisponde a questo formato interrompe la lettura.The first character that does not fit this form stops the scan. Se il valore base è compreso tra 2 e 36, viene usato come base del numero.If base is between 2 and 36, then it is used as the base of the number. Se base è 0, per determinare la base vengono usati i caratteri iniziali della stringa a cui punta nptr.If base is 0, the initial characters of the string pointed to by nptr are used to determine the base. Se il primo carattere è 0 e il secondo carattere non è 'x' né 'X', la stringa viene interpretata come un Integer ottale.If the first character is 0 and the second character is not 'x' or 'X', the string is interpreted as an octal integer. Se il primo carattere è '0' e il secondo carattere è 'x' o 'X', la stringa viene interpretata come integer esadecimale.If the first character is '0' and the second character is 'x' or 'X', the string is interpreted as a hexadecimal integer. Se il primo carattere è compreso tra '1' e '9', la stringa viene interpretata come integer decimale.If the first character is '1' through '9', the string is interpreted as a decimal integer. 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.The letters 'a' through 'z' (or 'A' through 'Z') are assigned the values 10 through 35; only letters whose assigned values are less than base are permitted. Il primo carattere non compreso nell'intervallo della base interrompe la lettura.The first character outside the range of the base stops the scan. 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.For example, if base is 0 and the first character scanned is '0', an octal integer is assumed and an '8' or '9' character will stop the scan.

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
strtol <stdlib.h><stdlib.h>
wcstol <stdlib.h> or <wchar.h><stdlib.h> or <wchar.h>
_strtol_l <stdlib.h><stdlib.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.For additional compatibility information, see Compatibility in the Introduction.

EsempioExample

Vedere l'esempio per strtod.See the example for strtod.

Vedere ancheSee Also

Data Conversion (Conversione dei dati)Data Conversion
Locale (Impostazioni locali)Locale
localeconv localeconv
setlocale, _wsetlocale setlocale, _wsetlocale
Funzioni da stringa a valore numerico String to Numeric Value Functions
strtod, _strtod_l, wcstod, _wcstod_l strtod, _strtod_l, wcstod, _wcstod_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_latof, _atof_l, _wtof, _wtof_l