Freigeben über


strtoimax, , _strtoimax_lwcstoimax_wcstoimax_l

Konvertiert eine Zeichenfolge in einen ganzzahligen Wert des größten unterstützten ganzzahligen Typs mit Vorzeichen.

Syntax

intmax_t strtoimax(
   const char *strSource,
   char **endptr,
   int base
);
intmax_t wcstoimax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
intmax_t _strtoimax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
intmax_t _wcstoimax_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

Parameter

strSource
Zu konvertierende mit NULL endende Zeichenfolge.

endptr
Zeiger auf das Zeichen, das die Überprüfung stoppt.

base
Zu verwendende Zahlenbasis.

locale
Das zu verwendende Gebietsschema.

Rückgabewert

strtoimax gibt den Wert zurück, der in der Zeichenfolge strSource dargestellt wird, es sei denn, die Darstellung erzeugt einen Überlauf. In diesem Fall wird INTMAX_MAX oder INTMAX_MIN zurückgegeben und errno auf ERANGE festgelegt. Die Funktion gibt 0 zurück, wenn keine Konvertierung ausgeführt werden kann. wcstoimax gibt Werte analog zu strtoimax zurück.

INTMAX_MAX und INTMAX_MIN werden in stdint.h definiert.

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 strtoimax-Funktion konvertiert strSource in intmax_t. Die Breitzeichenversion von strtoimax ist wcstoimax. Das dazugehörige strSource-Argument ist eine Breitzeichenfolge. Ansonsten 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, das größer oder gleich ist base, sein.

Die Kategorieeinstellung des Gebietsschemas bestimmt die Erkennung des Radixzeichens LC_NUMERIC in strSource; weitere Informationen finden Sie unter setlocale, _wsetlocale. Die Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema. _strtoimax_l und _wcstoimax_l sind mit den entsprechenden Funktionen ohne das _l-Suffix nahezu identisch haben, verwenden jedoch stattdessen 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 von endptr gezeigt wird.

Mapping generischer Textroutinen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

strtoimax erwartet, dass strSource auf eine Zeichenfolge der folgenden Form zeigt:

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

whitespace besteht möglicherweise aus Leerzeichen und Tabulatorzeichen, die ignoriert werden; digits sind mindestens eine Dezimalstelle; letters sind mindestens ein Buchstabe von "a" bis "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 ein "8"- oder "9"-Zeichen beendet die Überprüfung.

Anforderungen

Routine Erforderlicher Header
strtoimax, , _strtoimax_lwcstoimax_wcstoimax_l <inttypes.h>

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

Siehe auch

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