Freigeben über


strtoul, , _strtoul_lwcstoul_wcstoul_l

Konvertiert eine Zeichenfolge in einen langen ganzzahligen Wert ohne Vorzeichen.

Syntax

unsigned long strtoul(
   const char *strSource,
   char **endptr,
   int base
);
unsigned long _strtoul_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned long wcstoul(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
unsigned long _wcstoul_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

strtoul gibt den konvertierten Wert zurück, sofern vorhanden, oder ULONG_MAX im Falle eines Überlaufs. strtoul gibt 0 zurück, wenn keine Konvertierung ausgeführt werden kann. wcstoul gibt Werte analog zu strtoul zurück. Für beide Funktionen wird errno auf ERANGE festgelegt, wenn ein Überlauf oder Unterlauf auftritt.

Weitere Informationen zu Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Hinweise

Jede dieser Funktionen konvertiert die Eingabezeichenfolge strSource in unsigned long .

strtoul beendet das Lesen der Zeichenfolge strSource am ersten Zeichen, das nicht als Teil einer Zahl erkannt werden kann. Dieses Zeichen kann das Endzeichen NULLoder das erste numerische Zeichen sein, das größer oder gleich ist base. Die LC_NUMERIC Kategorieeinstellung des Gebietsschemas bestimmt die Erkennung des Radixzeichens in strSource; weitere Informationen finden Sie unter setlocale. strtoul undwcstoul verwenden das aktuelle Gebietsschema; _strtoul_l und_wcstoul_l sind identisch, verwenden allerdings das übergebene Gebietsschema. 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.

wcstoul ist eine Breitzeichenversion von strtoul. 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. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tcstoul strtoul strtoul wcstoul
_tcstoul_l strtoul_l _strtoul_l _wcstoul_l

strtoul 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 mindestens eine der Buchstaben a durch z (oder A durch 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 Xist, wird die Zeichenfolge als oktale ganze Zahl interpretiert. Wenn das erste Zeichen "0" ist und das zweite Zeichen oder das zweite Zeichen ist x oder X, 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 durch z (oder A durch Z) werden den Werten 10 bis 35 zugewiesen. Nur Buchstaben, deren zugewiesene Werte kleiner als base zulässig sind. 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. strtoul lässt ein Pluszeichen (+) oder ein Minuszeichens (-) als Präfix zu. Ein führendes Minuszeichen gibt an, dass der Rückgabewert invertiert wird.

Anforderungen

Routine Erforderlicher Header
strtoul <stdlib.h>
wcstoul <stdlib.h> oder <wchar.h>
_strtoul_l <stdlib.h>
_wcstoul_l <stdlib.h> oder <wchar.h>

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

Beispiel

Ein Beispiel hierfür finden Sie unter strtod.

Siehe auch

Datenkonvertierung
Gebietsschema
localeconv
setlocale, _wsetlocale
Zeichenfolge zu numerischen Wertfunktionen
strtod, , _strtod_lwcstod_wcstod_l
strtol, , wcstol_strtol_l_wcstol_l
atof, , _atof_l_wtof_wtof_l