Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

strtoul - Zeichenkette in ganze Zahl (unsigned long) umwandeln

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

unsigned long int strtoul(const char *s, char **endptr, int base);

Beschreibung

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

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

Für tab sind alle Zwischenraumzeichen zulässig (siehe Definition bei isspace()).

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

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

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

Wenn überhaupt keine Umwandlung möglich ist, wird *endptr auf die Anfangsadresse der Zeichenkette s gesetzt.

Ein drittes Argument base bestimmt die Basis (z.B. Dezimal-, Oktal- oder Sedezimal-Basis) für die Umwandlung. base ist eine ganze Zahl von 0 bis 36.

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



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.


ULONG_MAX

bei Überlauf. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

strtoul() schlägt fehl, wenn gilt:

 

 

EINVAL

Der Wert von base wird nicht unterstützt.

 

ERANGE

Der Returnwert verursacht einen Überlauf.

 

EINVAL

Umwandlung konnte nicht ausgeführt werden.

Siehe auch

atol(), atoi(), isalpha(), strtol(), stdlib.h.