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 *strSource,
   char **endptr,
   int base
);
long wcstol(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
long _strtol_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

ParametriParameters

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

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

basebase
Base numerica da usare.Number base to use.

localelocale
Impostazioni locali da usare.Locale to use.

Valore restituitoReturn Value

strtol restituisce il valore rappresentato nella stringa strSource, tranne quando la rappresentazione potrebbe provocare un overflow, in tal caso, restituisce LONG_MAX o LONG_ MIN.strtol returns the value represented in the string strSource, 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 è impostata 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

Il strtol funzione converte strSource a un lungo.The strtol function converts strSource to a long. strtol interrompe la lettura della stringa strSource con il primo carattere non riconosciuto come parte di un numero.strtol stops reading the string strSource at the first character it cannot recognize as part of a number. Ciò potrebbe essere il carattere di terminazione null, o potrebbe essere il 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 strtol; relativo strSource argomento è una stringa di caratteri "wide".wcstol is a wide-character version of strtol; its strSource 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_tcstol strtolstrtol strtolstrtol wcstolwcstol
_tcstol_l_tcstol_l _strtol_l_strtol_l _strtol_l_strtol_l _wcstol_l_wcstol_l

Le impostazioni locali correnti LC_NUMERIC categoria determina il riconoscimento del carattere radice strSource * *; per altre informazioni, vedere setlocale.The current locale's LC_NUMERIC category setting determines recognition of the radix character in strSource; for more information, see setlocale. Le funzioni senza il l suffisso usano le impostazioni locali; strtol_l e wcstol_l sono identiche alle corrispondenti funzioni senza il l suffisso ad eccezione del fatto che 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 l'analisi viene archiviato in una posizione a cui puntata 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 sono state trovate le cifre non valide o è stata specificata una base non valida, il valore di strSource archiviato in una posizione a cui puntata endptr.If no conversion can be performed (no valid digits were found or an invalid base was specified), the value of strSource is stored at the location pointed to by endptr.

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

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

Un whitespace può essere costituito da caratteri di spazio e tabulazione, che vengono ignorati; cifre sono uno o più cifre decimali. lettere sono uno o più lettere 'a' a 'z' ('A' a 'Z').A whitespace may consist of space and tab characters, which are ignored; digits are one or more decimal digits; letters are one or more of the letters 'a' through 'z' (or 'A' through 'Z'). 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 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, i caratteri iniziali della stringa a cui puntata strSource vengono utilizzati per determinare la base.If base is 0, the initial characters of the string pointed to by strSource 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 un 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
strtolstrtol <stdlib.h><stdlib.h>
wcstolwcstol <stdlib.h> or <wchar.h><stdlib.h> or <wchar.h>
_strtol_l_strtol_l <stdlib.h><stdlib.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.For additional compatibility information, see Compatibility.

EsempioExample

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

Vedere ancheSee also

Conversione dei datiData Conversion
Impostazioni localiLocale
localeconvlocaleconv
setlocale, _wsetlocalesetlocale, _wsetlocale
Funzioni da stringa a valore numericoString to Numeric Value Functions
strtod, _strtod_l, wcstod, _wcstod_lstrtod, _strtod_l, wcstod, _wcstod_l
strtoul, _strtoul_l, wcstoul, _wcstoul_lstrtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_latof, _atof_l, _wtof, _wtof_l