C Standardbibliothek Cheatsheet

6 Header-Dateien
Die wichtigsten Header der C Standardbibliothek: stdio.h · stdlib.h · string.h · ctype.h · math.h · time.h Die C Standardbibliothek bietet eine Vielzahl von Funktionen für Ein-/Ausgabe, Speicherverwaltung, String-Operationen, Mathematik und mehr – unverzichtbar für die C-Programmierung.

stdio.h – Ein- und Ausgabe

printf, scanf, fopen, fclose, fgets, fputs
#include <stdio.h> printf("Hallo %s\n", name); scanf("%d", &zahl);

stdio.h (Standard Input/Output) enthält Funktionen für die Ein- und Ausgabe – von der Konsole bis zu Dateien.

Wichtige Funktionen

Funktion Beschreibung
printf(format, ...) Formatierte Ausgabe auf der Konsole
scanf(format, ...) Formatierte Eingabe von der Konsole
fopen(path, mode) Öffnet eine Datei
fclose(file) Schließt eine Datei
fprintf(file, format, ...) Formatierte Ausgabe in Datei
fscanf(file, format, ...) Formatierte Eingabe aus Datei
fgets(str, size, file) Liest eine Zeile aus Datei
fputs(str, file) Schreibt eine Zeile in Datei
getchar() Liest ein Zeichen von der Konsole
putchar(c) Schreibt ein Zeichen auf die Konsole
Beispiele
#include <stdio.h>
int main() {
char name[50];
printf("Name: ");
fgets(name, 50, stdin);
printf("Hallo %s", name);
FILE *file = fopen("test.txt", "w");
fprintf(file, "Hallo Welt\n");
fclose(file);
return 0;
}
Tipp: Verwenden Sie fgets() statt scanf() für sichere Eingabe von Strings – scanf() kann bei längeren Eingaben zu Buffer Overflows führen.

stdlib.h – Speicher & Hilfsfunktionen

malloc, calloc, free, atoi, rand, qsort
#include <stdlib.h> int *arr = (int*)malloc(10 * sizeof(int)); free(arr);

stdlib.h (Standard Library) enthält Funktionen für Speicherverwaltung, Konvertierungen, Zufallszahlen und Sortierung.

Wichtige Funktionen

Funktion Beschreibung
malloc(size) Alloziert Speicher (ungefährter Inhalt)
calloc(count, size) Alloziert Speicher (null-initialisiert)
realloc(ptr, size) Vergrößert/verkleinert Speicher
free(ptr) Gibt Speicher frei
atoi(str) Konvertiert String zu int
atof(str) Konvertiert String zu double
rand() Zufallszahl (0 - RAND_MAX)
srand(seed) Setzt Seed für rand()
qsort(base, num, size, cmp) Sortiert ein Array
exit(status) Beendet das Programm
Beispiele
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
srand(time(NULL));
int z = rand() % 100; // 0-99
int arr[5] = {5, 2, 8, 1, 3};
qsort(arr, 5, sizeof(int), cmp);
return 0;
}
Tipp: Verwenden Sie calloc() statt malloc(), wenn der Speicher mit 0 initialisiert werden soll. Prüfen Sie immer, ob malloc()/calloc() NULL zurückgibt!

string.h – String-Operationen

strlen, strcpy, strcat, strcmp, strstr
#include <string.h> size_t len = strlen("Hallo"); // 5 strcpy(dest, "Welt");

string.h enthält Funktionen für die Verarbeitung von null-terminierten Strings – Kopieren, Verketten, Vergleichen und Suchen.

Wichtige Funktionen

Funktion Beschreibung
strlen(str) Länge des Strings (ohne '\0')
strcpy(dest, src) Kopiert String (unsicher)
strncpy(dest, src, n) Kopiert maximal n Zeichen (sicherer)
strcat(dest, src) Hängt String an (unsicher)
strncat(dest, src, n) Hängt maximal n Zeichen an (sicherer)
strcmp(s1, s2) Vergleicht Strings (0 = gleich)
strncmp(s1, s2, n) Vergleicht maximal n Zeichen
strchr(str, c) Findet erstes Vorkommen von c
strrchr(str, c) Findet letztes Vorkommen von c
strstr(str, sub) Findet Teilstring
strtok(str, delim) Zerlegt String in Tokens
Beispiele
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hallo";
char str2[20] = "Welt";
char buffer[40];
strcpy(buffer, str1);
strcat(buffer, " ");
strcat(buffer, str2); // "Hallo Welt"
printf("%s\n", buffer);
printf("Länge: %zu\n", strlen(buffer));
char *pos = strstr(buffer, "Welt");
if (pos) printf("Gefunden: %s\n", pos);
return 0;
}
⚠️ Sicherheit: strcpy() und strcat() sind unsicher, da sie keinen Größencheck haben. Verwenden Sie stattdessen strncpy() und strncat() oder snprintf().

ctype.h – Zeichen-Klassifizierung

isalpha, isdigit, isalnum, isspace, toupper, tolower
#include <ctype.h> if (isalpha(c)) { /* Buchstabe */ } char upper = toupper(c);

ctype.h enthält Funktionen zur Prüfung und Konvertierung von Zeichen – ob Buchstabe, Ziffer, Leerzeichen oder Groß-/Kleinschreibung.

Wichtige Funktionen

Funktion Beschreibung
isalnum(c) Prüft auf alphanumerisches Zeichen (A-Z, a-z, 0-9)
isalpha(c) Prüft auf Buchstabe (A-Z, a-z)
isdigit(c) Prüft auf Ziffer (0-9)
islower(c) Prüft auf Kleinbuchstabe
isupper(c) Prüft auf Großbuchstabe
isspace(c) Prüft auf Leerzeichen, Tab, Newline, etc.
ispunct(c) Prüft auf Satzzeichen (nicht alphanumerisch und kein Leerzeichen)
isxdigit(c) Prüft auf hexadezimale Ziffer (0-9, A-F, a-f)
toupper(c) Konvertiert zu Großbuchstabe
tolower(c) Konvertiert zu Kleinbuchstabe
Beispiele
#include <stdio.h>
#include <ctype.h>
int main() {
char text[] = "Hallo 123!";
for (int i = 0; text[i] != '\0'; i++) {
char c = text[i];
if (isalpha(c)) printf("%c ist ein Buchstabe\n", c);
else if (isdigit(c)) printf("%c ist eine Ziffer\n", c);
else if (isspace(c)) printf("Leerzeichen\n");
}
char gross = toupper('a'); // 'A'
return 0;
}
Tipp: ctype.h-Funktionen sind besonders nützlich für die Validierung von Benutzereingaben und die Formatierung von Text. Sie arbeiten mit int-Werten, die EOF sein können.

math.h – Mathematische Funktionen

sqrt, pow, sin, cos, tan, exp, log, fabs
#include <math.h> double wurzel = sqrt(16.0); // 4.0 double potenz = pow(2.0, 3.0); // 8.0

math.h enthält mathematische Funktionen für Trigonometrie, Potenzen, Logarithmen und andere Berechnungen. Beim Linken muss oft die Mathematik-Bibliothek eingebunden werden (-lm).

Wichtige Funktionen

Funktion Beschreibung
sqrt(x) Quadratwurzel
pow(x, y) Potenz xy
sin(x), cos(x), tan(x) Trigonometrische Funktionen (x im Bogenmaß)
asin(x), acos(x), atan(x) Arkustrigonometrische Funktionen
exp(x) ex
log(x) Natürlicher Logarithmus (Basis e)
log10(x) Logarithmus zur Basis 10
fabs(x) Absolutwert (double)
ceil(x) Aufrunden (zum nächsten größeren Integer)
floor(x) Abrunden (zum nächsten kleineren Integer)
M_PI Konstante π (nicht standardisiert, oft verfügbar)
Beispiele
#include <stdio.h>
#include <math.h>
int main() {
double x = 9.0;
printf("Wurzel: %.2f\n", sqrt(x)); // 3.00
printf("Potenz: %.2f\n", pow(2.0, 8.0)); // 256.00
printf("sin(π/2): %.2f\n", sin(M_PI / 2.0)); // 1.00
printf("log(e): %.2f\n", log(2.71828)); // 1.00
return 0;
}
Tipp: Beim Kompilieren mit GCC müssen Sie die Mathematik-Bibliothek mit -lm linken: gcc programm.c -o programm -lm.

time.h – Zeit- und Datumsfunktionen

time, clock, difftime, strftime, localtime
#include <time.h> time_t t = time(NULL); printf("%s", ctime(&t));

time.h enthält Funktionen für Zeit- und Datumsoperationen – von der aktuellen Zeit über Zeitmessung bis zur formatieren Ausgabe.

Wichtige Funktionen

Funktion Beschreibung
time(t) Gibt die aktuelle Kalenderzeit zurück (Sekunden seit 1970)
clock() Gibt die Prozessorzeit zurück (für Laufzeitmessung)
difftime(t1, t2) Differenz in Sekunden (t1 - t2)
localtime(t) Konvertiert zu lokaler Zeit (struct tm)
gmtime(t) Konvertiert zu UTC (struct tm)
asctime(tm) Konvertiert struct tm zu String
ctime(t) Konvertiert time_t zu String (asctime(localtime(t)))
strftime(buffer, size, format, tm) Formatierte Ausgabe der Zeit
mktime(tm) Konvertiert struct tm zu time_t
Beispiele
#include <stdio.h>
#include <time.h>
int main() {
time_t start, ende;
time(&start);
// ... Code ...
time(&ende);
printf("Dauer: %.2f Sekunden\n", difftime(ende, start));
// Formatiertes Datum
char buffer[80];
time_t now = time(NULL);
struct tm *tm = localtime(&now);
strftime(buffer, 80, "%d.%m.%Y %H:%M:%S", tm);
printf("Aktuell: %s\n", buffer);
return 0;
}
Tipp: Für Laufzeitmessungen von Code verwenden Sie clock() anstelle von time() – es misst die CPU-Zeit und ist genauer für kurze Codeabschnitte.

C Standardbibliothek im Überblick

stdio.h Ein-/Ausgabe
printf, scanf, FILE
stdlib.h Speicher & Hilfen
malloc, free, atoi
string.h String-Operationen
strlen, strcpy, strcat
ctype.h Zeichenprüfung
isalpha, toupper
math.h Mathematik
sqrt, pow, sin
time.h Zeit & Datum
time, strftime

Quick Summary

stdio.h
Ein-/Ausgabe
stdlib.h
Speicher
string.h
Strings
ctype.h
Zeichen
math.h
Mathematik
time.h
Zeit
#include <stdio.h> · #include <stdlib.h> · #include <string.h>