05.11.2014 Aufrufe

Systemprogrammierung Teil 1: Einführung

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

ANSI-C Standard-Bibliothek: (2)<br />

• Suchen und Sortieren:<br />

void *bsearch(const void* key, const void* p, size_t n, size_t size,<br />

int (*cmp)(const void*, const void*));<br />

void qsort(void* p, size_t n, size_t size,<br />

int (*cmp)(const void*, const void*));<br />

• Beispiel:<br />

#include /* damit bsearch und qsort bekannt sind */<br />

int intcmp(const void ∗, const void ∗); /* Vergleichsfunktion */<br />

...<br />

int a[4] = {40, 20, 10, 30};<br />

int n = 50, *p;<br />

qsort(a, 4, sizeof (int), intcmp); /* sortiert a aufsteigend */<br />

p = (int*) bsearch(&n, a, 4, sizeof (int), intcmp); /* sucht 50 in a */<br />

Wie sieht die Implementierung von intcmp aus?<br />

Prof. Dr. H. Drachenfels <strong>Systemprogrammierung</strong> 4-30<br />

Hochschule Konstanz<br />

ANSI-C Standard-Bibliothek: <br />

• Prüfen der Zeichenart (Ziffer, Buchstabe, Zwischenraum usw.):<br />

int isalnum(int c);<br />

int isalpha(int c);<br />

int iscntrl(int c);<br />

int isdigit(int c);<br />

int isgraph(int c);<br />

int islower(int c);<br />

int isprint(int c);<br />

int ispunct(int c);<br />

int isspace(int c);<br />

int isupper(int c);<br />

int isxdigit(int c);<br />

• Wandeln in Klein- / Großbuchstaben:<br />

int tolower(int c);<br />

int toupper(int c);<br />

• Beispiel:<br />

#include /* damit isdigit bekannt ist */<br />

...<br />

if (isdigit('9')) printf("9 ist eine Ziffer\n");<br />

Prof. Dr. H. Drachenfels <strong>Systemprogrammierung</strong> 4-31<br />

Hochschule Konstanz

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!