Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

strtoull - Zeichenkette in ganze Zahl umwandeln (unsigned long long)

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

unsigned long long int strtoull(const char *s, char **zg, int base);

strtoull wandelt eine Zeichenkette, auf die s zeigt, in eine ganze Zahl vom Typ unsigned long long int um. Die umzuwandelnde Zeichenkette kann wie folgt aufgebaut sein:

[{tab | 'BLANK' } ...][0 | 0X]Ziffer...

Für tab sind alle Steuerzeichen für „Zwischenraum“ zulässig (siehe Definition bei isspace).

Für Ziffer sind je nach der Basis (siehe base) die Ziffern 0 bis 9 und die Buchstaben a (oder A) bis z (oder Z) zulässig.

strtoull erkennt auch Zeichenketten, die mit umwandelbaren Ziffern (auch Oktal- bzw. Sedezimal-Ziffern) beginnen, dann aber mit beliebigen Zeichen enden. In diesem Fall schneidet strtoull zunächst den Ziffernteil ab und wandelt ihn um.

Zusätzlich erhält man von strtoull über das zweite Argument zg vom Typ char ** einen Zeiger auf das erste nicht umwandelbare Zeichen in der Zeichenkette s; jedoch nur, wenn zg nicht als NULL-Zeiger übergeben wird.

Ein drittes Argument base bestimmt die Basis (z.B. Dezimal-, Oktal- oder Sedezimal-Basis) für die Umwandlung.

Parameter

const char *s

Zeiger auf die umzuwandelnde Zeichenkette.

char **zg

Wenn zg kein NULL-Zeiger ist, wird ein Zeiger (*zg) auf das erste Zeichen in s zurückgeliefert, das die Umwandlung beendet. Wenn überhaupt keine Umwandlung möglich ist, wird *zg auf die Anfangsadresse der Zeichenkette s gesetzt.

int base

Ganze Zahl von 0 bis 36, die als Basis für die Berechnung verwendet werden soll.

Von Basis 11 bis 36 werden die Buchstaben a (oder A) bis z (oder Z) in der umzuwandelnden Zeichenkette als Ziffern angenommen, und zwar mit den entsprechenden Werten 10 (a/A) bis 35 (z/Z).

Falls base gleich 0 ist, wird die Basis folgendermaßen aus dem Aufbau der Zeichenkette s bestimmt:

führende 0

Basis 8

führendes 0X bzw. 0x

Basis 16

sonst

Basis 10

Falls mit Parameter base = 16 gerechnet wird, werden die Zeichen 0X bzw. 0x in der Zeichenkette s ignoriert.

Returnwert

Ganzzahliger Wert vom Typ unsigned long long int



für Zeichenketten, die eine wie oben beschriebene Struktur haben und einen Zahlenwert darstellen.


0

für Zeichenketten, die nicht der oben beschriebenen Syntax entsprechen.
Es wird keine Konvertierung durchgeführt.
Wenn der Wert von base nicht unterstützt wird, wird errno auf EINVAL gesetzt.


ULLONG_MAX

bei Überlauf. errno wird auf ERANGE gesetzt.

Siehe auch

atol, atoll, atoi, strtol, strtoll, stroul, wcstol, wcstoll, wcstoul, wcstoull