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