Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Konvertera strängar till ett long
heltalsvärde.
Syntax
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
);
Parameterar
string
Null-avslutad sträng som ska konverteras.
end_ptr
En utdataparameter som ska peka på tecknet efter det senast tolkade tecknet. Ignorerad, om NULL
.
base
Nummerbas som ska användas.
locale
Nationella inställningar som ska användas.
Returvärde
strtol
, wcstol
, _strtol_l
och _wcstol_l
returnerar värdet som representeras i string
. De returnerar 0 om ingen konvertering är möjlig. När representationen skulle orsaka ett spill returnerar LONG_MAX
de eller LONG_MIN
.
errno
är inställd på ERANGE
om spill eller underflöde inträffar. Den är inställd på EINVAL
om string
är NULL
. Eller om base
är icke-zero och mindre än 2, eller större än 36. Mer information om ERANGE
, EINVAL
och andra returkoder finns i errno
, _doserrno
, _sys_errlist
och _sys_nerr
.
Anmärkningar
Funktionerna strtol
, wcstol
, _strtol_l
och _wcstol_l
konverterar string
till en long
. De slutar läsa string
vid det första tecknet som inte känns igen som en del av ett tal. Det kan vara tecknet terminating-null eller det första alfanumeriska tecknet som är större än eller lika med base
.
wcstol
och _wcstol_l
är wide-character versioner av strtol
och _strtol_l
. Deras string
argument är en sträng med många tecken. Dessa funktioner fungerar identiskt med strtol
och _strtol_l
på annat sätt. Språkvariantens LC_NUMERIC
kategoriinställning avgör igenkänningen av radixtecknet (bråkmarkören eller decimaltecknet) i string
. Funktionerna strtol
och wcstol
använd det aktuella språket.
_strtol_l
och _wcstol_l
använd det språk som skickades i stället. Mer information finns i setlocale
och Nationella inställningar.
När end_ptr
är NULL
ignoreras den. Annars lagras en pekare till tecknet som stoppade genomsökningen på den plats som pekas på av end_ptr
. Ingen konvertering är möjlig om inga giltiga siffror hittas eller om en ogiltig bas har angetts. Värdet för string
lagras sedan på den plats som pekas på av end_ptr
.
strtol
förväntar sig string
att peka på en sträng i följande formulär:
[
whitespace
] [{+
|-
}] [0
[{x
|X
}]] [alphanumerics
]
Hakparenteser ([ ]
) omger valfria element. Klammerparenteser och en lodrät stapel ({ | }
) omger alternativ för ett enda element.
whitespace
kan bestå av blanksteg och tabbtecken som ignoreras.
alphanumerics
är decimaltal eller bokstäverna 'a'
genom 'z'
(eller 'A'
via 'Z'
). Det första tecknet som inte passar det här formuläret stoppar genomsökningen. Om base
är mellan 2 och 36 används det som bas för talet. Om base
är 0
används de inledande tecknen i strängen som pekas på av string
för att fastställa basen. Om det första tecknet är 0
, och det andra tecknet inte 'x'
är eller 'X'
, tolkas strängen som ett oktalt heltal. Om det första tecknet är '0'
och det andra tecknet är 'x'
eller 'X'
tolkas strängen som ett hexadecimalt heltal. Om det första tecknet är '1'
genom '9'
tolkas strängen som ett decimaltal. Bokstäverna 'a'
genom 'z'
(eller 'A'
via 'Z'
) tilldelas värdena 10 till och med 35. Genomsökningen tillåter endast bokstäver vars värden är mindre än base
. Det första tecknet utanför basintervallet stoppar genomsökningen. Anta till exempel att string
börjar med "01"
. Om base
är 0
förutsätter skannern att det är ett oktalt heltal. Ett '8'
eller-tecken '9'
stoppar genomsökningen.
Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.
Allmän textrutinmappning
TCHAR. H-rutin |
_UNICODE och _MBCS inte definierat |
_MBCS definierad |
_UNICODE definierad |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
Kravspecifikation
Rutin | Obligatoriskt huvud |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> eller <wchar.h> |
_strtol_l |
<stdlib.h> |
_wcstol_l |
<stdlib.h> eller <wchar.h> |
Funktionerna _strtol_l
och _wcstol_l
är Microsoft-specifika, inte en del av Standard C-biblioteket. Mer kompatibilitetsinformation finns i Kompatibilitet.
Exempel
Se exemplet för strtod
.
Se även
Datakonvertering
regionala inställningar
localeconv
setlocale
, _wsetlocale
Funktioner för sträng till numeriskt värde
strtod
, _strtod_l
, , wcstod
_wcstod_l
strtoll
, _strtoll_l
, , wcstoll
_wcstoll_l
strtoul
, _strtoul_l
, , wcstoul
_wcstoul_l
atof
, _atof_l
, , _wtof
_wtof_l