Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

strtoll - Zeichenkette in ganze Zahl umwandeln (long long int)

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

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

Beschreibung

strtoll() wandelt eine EBCDIC-Zeichenkette, auf die s zeigt, in eine ganze Zahl vom Typ 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 isspa-ce()).

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

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

Zusätzlich erhält man von strtoll() ü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 Nullzeiger übergeben wird.

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

Die Funktion verfügt über folgende Parameter:

const char *s

Zeiger auf die umzuwandelnde EBCDIC-Zeichenkette.

char **zg

Wenn zg kein Nullzeiger 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 nach einem evtl. Vorzeichen in der Zeichenkette s ignoriert.

Returnwert

Ganzzahliger Wert vom Typ 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.


LLONG_MAX bzw. LLONG_MIN



abhängig vom Vorzeichen, bei Überlauf. errno wird auf ERANGE gesetzt.

Hinweise

Ist zg ein Nullzeiger und base gleich 10, unterscheidet sich strtoll() von der Funktion atoll() nur durch die Fehlerbehandlung.

atoll(s) entspricht strtoll(s, (char **)NULL, 10).

Siehe auch

atol(), atoll(), atoi()strtoimax(), strtol(), stroul(), stroull(), wcstol(), wcstoll(), wcstoul(), wcstoull().