wcstoimax, wcstoumax
|
Definiert in Header
<inttypes.h>
|
||
|
intmax_t
wcstoimax
(
const
wchar_t
*
restrict
nptr,
wchar_t ** restrict endptr, int base ) ; |
(seit C99) | |
|
uintmax_t
wcstoumax
(
const
wchar_t
*
restrict
nptr,
wchar_t ** restrict endptr, int base ) ; |
(seit C99) | |
Interpretiert einen ganzzahligen Wert ohne Vorzeichen in der breiten Zeichenkette, auf die
nptr
zeigt.
Verwirft alle Leerzeichen (wie durch Aufruf von
iswspace
identifiziert) bis zum ersten Nicht-Leerzeichen gefunden wird, dann nimmt so viele Zeichen wie möglich, um eine gültige
Basis-n
(wobei n=
base
) Ganzzahl ohne Vorzeichen Darstellung zu bilden und konvertiert sie zu einem ganzzahligen Wert. Der gültige Ganzzahlwert ohne Vorzeichen besteht aus folgenden Teilen:
- (optional) Plus- oder Minuszeichen
-
(optional)
Präfix (
0) zur Kennzeichnung der Oktalbasis (gilt nur, wenn die Basis 8 oder 0 ist) -
(optional)
Präfix (
0xoder0X) zur Kennzeichnung der Hexadezimalbasis (gilt nur, wenn die Basis 16 oder 0 ist) - eine Ziffernfolge
Die Menge der gültigen Werte für die Basis ist
{0, 2, 3, ..., 36}
. Die Menge der gültigen Ziffern für Basis-
2
-Integer ist
{0, 1}
, für Basis-
3
-Integer ist
{0, 1, 2}
, und so weiter. Für Basen größer als
10
umfassen gültige Ziffern alphabetische Zeichen, beginnend mit
Aa
für Basis-
11
-Integer, bis zu
Zz
für Basis-
36
-Integer. Die Groß-/Kleinschreibung der Zeichen wird ignoriert.
Zusätzliche numerische Formate können von der aktuell installierten C- Locale akzeptiert werden.
Wenn der Wert von
base
0
beträgt, wird die numerische Basis automatisch erkannt: wenn das Präfix
0
lautet, ist die Basis oktal, wenn das Präfix
0x
oder
0X
lautet, ist die Basis hexadezimal, andernfalls ist die Basis dezimal.
Wenn das Minuszeichen Teil der Eingabesequenz war, wird der numerische Wert, der aus der Ziffernfolge berechnet wurde, negiert, als ob durch unäres Minus im Ergebnistyp, was die Wrap-around-Regeln für vorzeichenlose Ganzzahlen anwendet.
Die Funktion setzt den Zeiger, auf den
endptr
zeigt, so, dass er auf das Breitzeichen nach dem letzten interpretierten Zeichen zeigt. Wenn
endptr
ein Nullzeiger ist, wird er ignoriert.
Inhaltsverzeichnis |
Parameter
| nptr | - | Zeiger auf den zu interpretierenden nullterminierten Breitzeichen-String |
| endptr | - | Zeiger auf einen Zeiger zu einem Breitzeichen. |
| base | - | base Basis des interpretierten Ganzzahlwerts |
Rückgabewert
Integerwert entsprechend dem Inhalt von
str
bei Erfolg. Falls der konvertierte Wert außerhalb des Bereichs des entsprechenden Rückgabetyps liegt, tritt ein Bereichsfehler auf und
INTMAX_MAX
,
INTMAX_MIN
,
UINTMAX_MAX
, oder
0
wird zurückgegeben, je nachdem. Falls keine Konvertierung durchgeführt werden kann, wird
0
zurückgegeben.
Beispiel
#include <errno.h> #include <inttypes.h> #include <stdio.h> #include <string.h> #include <wchar.h> int main(void) { wchar_t* endptr; wprintf(L"%ld\n", wcstoimax(L" -123junk", &endptr, 10)); /* Basis 10 */ wprintf(L"%ld\n", wcstoimax(L"11111111", &endptr, 2)); /* Basis 2 */ wprintf(L"%ld\n", wcstoimax(L"XyZ", &endptr, 36)); /* Basis 36 */ wprintf(L"%ld\n", wcstoimax(L"010", &endptr, 0)); /* Oktale Auto-Erkennung */ wprintf(L"%ld\n", wcstoimax(L"10", &endptr, 0)); /* Dezimale Auto-Erkennung */ wprintf(L"%ld\n", wcstoimax(L"0x10", &endptr, 0)); /* Hexadezimale Auto-Erkennung */ /* Bereichsfehler */ /* LONG_MAX+1 --> LONG_MAX */ errno = 0; wprintf(L"%ld\n", wcstoimax(L"9223372036854775808", &endptr, 10)); wprintf(L"%s\n", strerror(errno)); }
Ausgabe:
-123 255 44027 8 10 16 9223372036854775807 Numerical result out of range
Referenzen
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.8.2.4 Die wcstoimax- und wcstoumax-Funktionen (S. 220)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.8.2.4 Die wcstoimax- und wcstoumax-Funktionen (S. 201)
Siehe auch
|
(C99)
(C99)
|
konvertiert eine Byte-Zeichenkette zu
intmax_t
oder
uintmax_t
(Funktion) |
|
(C95)
(C99)
|
konvertiert eine Breitzeichen-Zeichenkette zu einem ganzzahligen Wert
(Funktion) |
|
(C95)
(C99)
|
konvertiert eine Breitzeichen-Zeichenkette zu einem vorzeichenlosen ganzzahligen Wert
(Funktion) |
|
C++-Dokumentation
für
wcstoimax
,
wcstoumax
|
|