Freigeben über


_strtoui64, , _wcstoui64_strtoui64_l_wcstoui64_l

Konvertiert eine Zeichenfolge in einen unsigned __int64-Wert.

Syntax

unsigned __int64 _strtoui64(
   const char *strSource,
   char **endptr,
   int base
);
unsigned __int64 _wcstoui64(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
unsigned __int64 _strtoui64_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned __int64 _wcstoui64_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
Zu verwendendes Gebietsschema.

Rückgabewert

_strtoui64 gibt den in der Zeichenfolge strSource dargestellten Wert zurück, es sei denn, die Darstellung würde einen Überlauf verursachen. In diesem Fall wird _UI64_MAX zurückgegeben. _strtoui64 gibt 0 zurück, wenn keine Konvertierung ausgeführt werden kann.

_UI64_MAX ist definiert in LIMITS.H.

Wenn strSourceNULL 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_errlistund _sys_nerr.errno

Hinweise

Die _strtoui64-Funktion konvertiert strSource in unsigned __int64. _wcstoui64 ist eine Breitzeichenversion von _strtoui64. Das dazugehörige strSource-Argument ist eine Breitzeichenfolge. Anderenfalls verhalten sich diese Funktionen identisch.

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.

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
_tcstoui64 _strtoui64 _strtoui64 _wcstoui64
_tcstoui64_l _strtoui64_l _strtoui64_l _wcstoui64_l

Die Kategorieeinstellung des aktuellen Gebietsschemas bestimmt die Erkennung des Radixzeichens LC_NUMERIC in strSource; weitere Informationen finden Sie unter setlocale. Die Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema. _strtoui64_l und _wcstoui64_l sind mit den entsprechenden Funktionen ohne das _l-Suffix identisch, außer dass sie stattdessen das übergebene Gebietsschema verwenden. 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 endptrdie 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.

_strtoui64 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
_strtoui64 <stdlib.h>
_wcstoui64 <stdlib.h> oder <wchar.h>
_strtoui64_l <stdlib.h>
_wcstoui64_l <stdlib.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_strtoui64.c
#include <stdio.h>

unsigned __int64 atoui64(const char *szUnsignedInt) {
   return _strtoui64(szUnsignedInt, NULL, 10);
}

int main() {
   unsigned __int64 u = atoui64("18446744073709551615");
   printf( "u = %I64u\n", u );
}
u = 18446744073709551615

Siehe auch

Datenkonvertierung
Gebietsschema
localeconv
setlocale, _wsetlocale
Zeichenfolge zu numerischen Wertfunktionen
strtod, , _strtod_lwcstod_wcstod_l
strtoul, , _strtoul_lwcstoul_wcstoul_l
atof, , _atof_l_wtof_wtof_l