Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

wcstoll - Langzeichenkette in ganze Zahl (long long) umwandeln

&pagelevel(4)&pagelevel

Definition

#include <wchar.h>

long long int wcstoll(const wchar_t * nptr, wchar_t ** endptr, int base);

wcstoll wandelt den ersten Teil der Zeichenkette aus Langzeichenwerten, auf die nptr zeigt, in die Darstellung long long int um. Zuerst wird die Eingabe-Zeichenkette aus Langzeichenwerten in drei Teile zerlegt:

  • eine möglicherweise leere Folge von Zwischenraumzeichen als Langzeichenwerte (entsprechend der Angabe durch iswspace) am Anfang,

  • eine Folge, die als ganze Zahl mit einer Dezimalzeichen-Darstellung interpretiert wird, die durch den Wert von base bestimmt wird,

  • und schließlich eine Zeichenkette aus Langzeichenwerten mit einem oder mehr nicht erkannten Langzeichenwerten, einschließlich abschließendem Nullbyte der Eingabe- Zeichenkette aus Langzeichenwerten.

Dann wird versucht, die mittlere Folge in eine ganze Zahl umzuwandeln. Anschließend wird das Ergebnis zurückgegeben.

Wenn der Wert von base gleich Null ist, wird als Format der mittleren Folge eine dezimale Konstante, oktale Konstante oder hexadezimale Konstante erwartet. Dieser kann + bzw. - vorangestellt sein. Eine dezimale Konstante beginnt mit einer Ziffer ungleich Null und besteht aus einer Folge dezimaler Ziffern. Eine oktale Konstante besteht aus dem Präfix 0 und optional einer Folge nur dezimaler Ziffern. Eine hexadezimale Konstante besteht aus dem Präfix 0x bzw. 0X und einer Folge dezimaler Ziffern und der Buchstaben a (bzw. A) bis f (bzw. F) mit den Werten 10 bis 15.

Wenn der Wert von base zwischen 2 und 36 liegt, wird als Format der mittleren Folge eine Sequenz von Buchstaben und Ziffern erwartet, die eine ganze Zahl darstellt mit der Basis, die durch base bestimmt wird (allerdings keine ganze Zahl mit Suffix). Optional kann das Vorzeichen + bzw. - vorangestellt sein. Den Buchstaben von a (bzw. A) bis einschließlich z (bzw. Z) sind die Werte 10 bis 35 zugeordnet. Es sind nur Buchstaben zulässig, deren Wert kleiner ist als der Wert von base. Ist der Wert von base gleich 16, können die Darstellungen 0x bzw. 0X für Langzeichenwerte, gegebenenfalls mit Vorzeichen, der Zeichen- und Buchstabenfolge voranstehen.

Diese mittlere Folge ist als die längste beginnende Teilfolge der Eingabe-Zeichenkette aus Langzeichenwerten definiert. Sie beginnt mit dem ersten Langzeichenwert, der kein Zwischenraumzeichen ist und das erwartete Format aufweist. Diese Folge enthält keine Langzeichenwerte, wenn die Eingabe-Zeichenkette aus Langzeichenwerten leer ist oder nur aus Langzeichenwerten besteht, die Zwischenraumzeichen sind, bzw. wenn der erste Langzeichenwert, der kein Zwischenraumzeichen ist, etwas anderes als ein Vorzeichen oder ein zulässiger Buchstabe bzw. eine zulässige Ziffer ist.

Wenn diese mittlere Folge das erwartete Format aufweist und der Wert von base gleich Null ist, wird die Folge der Langzeichenwerte, die mit der ersten Ziffer beginnt, als Integer-Konstante interpretiert. Wenn diese mittlere Folge das erwartete Format aufweist und der Wert von base zwischen 2 und 36 liegt, wird sie als Grundlage für die Umwandlung verwendet. Jedem Buchstaben wird sein Wert (siehe oben) zugeordnet. Wenn die Folge mit einem Minuszeichen beginnt, ist das Ergebnis der Umwandlung negativ. Wenn endptr kein NULL-Zeiger ist, wird ein Zeiger auf die abschließende Zeichenkette aus Langzeichenwerten in dem Objekt abgelegt, auf das endptr zeigt.

Wenn diese mittlere Folge leer ist oder nicht das erwartete Format aufweist, wird keine Umwandlung durchgeführt. Der Wert von nptr wird in dem Objekt abgelegt, auf das endptr zeigt, wenn endptr kein NULL-Zeiger ist.

Returnwert

konvertierter Wert



bei Erfolg.


0   

wenn keine Umwandlung durchgeführt werden konnte.
errno wird auf EINVAL gesetzt, wenn der Wert von base nicht unterstützt wird.


LLONG_MAX, LLONG_MIN abgängig vom Vorzeichen des Wertes.



wenn der richtige Wert außerhalb des Bereichs der darstellbaren Werte liegt.
errno wird auf ERANGE gesetzt, um den Fehler anzuzeigen.

Hinweise

In dieser Version des C-Laufzeitsystems werden nur 1-Byte-Zeichen als Langzeichen unterstützt.

Da 0 sowohl bei einem Fehler zurückgegeben wird als auch bei Erfolg einen gültigen Returnwert darstellt, muss eine Anwendung, die auf Fehler prüfen will, die folgenden Aktionen ausführen: errno wird auf 0 gesetzt, wcstoll aufgerufen und der Wert von errno überprüft. Falls dieser Wert ungleich Null ist, wird angenommen, dass ein Fehler aufgetreten ist.

Siehe auch

iswalpha, iswspace, scanf, strtol, strtoll, strtoul, strtoull, wcstod, wcstol, wcstoul