_strtoi64
, , _wcstoi64
_strtoi64_l
_wcstoi64_l
Konvertiert eine Zeichenfolge in einen __int64
-Wert.
Syntax
__int64 _strtoi64(
const char *strSource,
char **endptr,
int base
);
__int64 _wcstoi64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
__int64 _strtoi64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
__int64 _wcstoi64_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Parameter
strSource
Zu konvertierende mit NULL endende Zeichenfolge.
endptr
Zeiger auf ein Zeichen, mit dem die Überprüfung beendet wird.
base
Zu verwendende Zahlenbasis.
locale
Das zu verwendende Gebietsschema.
Rückgabewert
_strtoi64
gibt den in der Zeichenfolge strSource
dargestellten Wert zurück, es sei denn, die Darstellung würde einen Überlauf verursachen. In diesem Fall wird _I64_MAX
oder _I64_MIN
zurückgegeben. Die Funktion gibt 0 zurück, wenn keine Konvertierung ausgeführt werden kann. _wcstoi64
gibt Werte analog zu _strtoi64
zurück.
_I64_MAX
und _I64_MIN
werden in LIMITS.H definiert.
Wenn strSource
NULL
ist, oder base
nicht NULL und entweder weniger als 2 oder größer als 36 ist, wird errno
auf EINVAL
festgelegt.
Weitere Informationen zu Rückgabecodes finden Sie unter , , _doserrno
, _sys_errlist
und _sys_nerr
.errno
Hinweise
Die _strtoi64
-Funktion konvertiert strSource
in __int64
. Beide Funktionen beenden das Lesen der Zeichenfolge strSource
am ersten Zeichen, das sie nicht als Teil einer Zahl erkennen können. Es kann sich um das endende Nullzeichen oder um das erste numerische Zeichen größer oder gleich sein base
. _wcstoi64
ist eine Breitzeichenversion von _strtoi64
. Das dazugehörige strSource
-Argument ist eine Breitzeichenfolge. Anderenfalls verhalten sich diese Funktionen identisch.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern finden Sie im Global state in the CRT.
Mapping generischer Textroutinen
TCHAR.H -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcstoi64 |
_strtoi64 |
_strtoi64 |
_wcstoi64 |
_tcstoi64_l |
_strtoi64_l |
_strtoi64_l |
_wcstoi64_l |
Die Kategorieeinstellung des Gebietsschemas bestimmt die Erkennung des Radixzeichens LC_NUMERIC
in strSource
; weitere Informationen finden Sie unter setlocale
. Die Funktionen ohne Suffix _l
verwenden das aktuelle Gebietsschema. _strtoi64_l
Sie _wcstoi64_l
sind identisch mit der entsprechenden Funktion ohne Suffix _l
, mit der Ausnahme, dass sie stattdessen das gebietsschema verwenden, das übergeben wird. Weitere Informationen finden Sie unter Locale.
Wenn endptr
nicht NULL
, wird ein Zeiger auf das Zeichen, das den Scan beendet hat, an der Stelle gespeichert, auf endptr
die verwiesen wird. Wenn keine Konvertierung ausgeführt werden kann (keine gültigen Ziffern gefunden oder ungültige Basis angegeben), wird der Wert von strSource
an dem Speicherort gespeichert, auf den durch endptr
gezeigt wird.
_strtoi64
erwartet, dass strSource
auf eine Zeichenfolge der folgenden Form zeigt:
[] [
whitespace
{+
|-
}] [0
[{x
|X
}]] [] []digits
|letters
Ein whitespace
Kann aus Leerzeichen und Tabstoppzeichen bestehen, die ignoriert werden. digits
sind eine oder mehrere Dezimalziffern. letters
sind eine oder mehrere der Buchstaben "a" durch "z" (oder "A" bis "Z"). Das erste Zeichen, das nicht in dieses Formular passt, beendet den Scan. Wenn base
sie zwischen 2 und 36 liegt, wird sie als Basis der Zahl verwendet. Wenn base
0 ist, werden die ersten Zeichen der Zeichenfolge, auf die durch strSource
gezeigt wird, zur Bestimmung der Basis verwendet. Wenn das erste Zeichen "0" ist und das zweite Zeichen nicht "x" oder "X" ist, wird die Zeichenfolge als oktale ganze Zahl interpretiert. Wenn das erste Zeichen "0" und das zweite Zeichen nicht "x" oder "X" ist, wird die Zeichenfolge als hexadezimale ganze Zahl interpretiert. Wenn das erste Zeichen "1" bis "9 " ist, wird die Zeichenfolge als ganze Dezimalzahl interpretiert. Die Buchstaben "a" bis "z" (bzw. "A" bis "Z") werden den Werten 10 bis 35 zugewiesen. Nur Buchstaben, deren zugewiesene Werte kleiner als base
sind, sind zulässig. Das erste Zeichen außerhalb des Bereichs der Basis beendet die Überprüfung. Wenn beispielsweise base
0 und das erste überprüfte Zeichen "0" ist, wird eine ganze Oktalzahl angenommen und das Zeichen "8" oder "9" beendet die Überprüfung.
Anforderungen
Funktion | Erforderlicher Header |
---|---|
_strtoi64 , _strtoi64_l |
<stdlib.h> |
_wcstoi64 , _wcstoi64_l |
<stdlib.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Siehe auch
Datenkonvertierung
Gebietsschema
localeconv
setlocale
, _wsetlocale
Zeichenfolge zu numerischen Wertfunktionen
strtod
, , _strtod_l
wcstod
_wcstod_l
strtoul
, , _strtoul_l
wcstoul
_wcstoul_l
atof
, , _atof_l
_wtof
_wtof_l