Die C-Bibliothek

Für häufige Anwendungsfälle bei der Programmierung gibt es zahlreiche vorgefertigte Funktionen, die entweder im Grundpaket von C zur Verfügung stehen oder über "#include" eingebunden werden können.


Weil es teilweise erhebliche Unterschiede zwischen den Rechnerplattformen gibt, stehen nicht alle Funktionen im C-Sprachkern zur Verfügung. Daher werden einige Funktionen in externen Dateien zur Verfügung gestellt. Diese vorkompilierten Bibliotheksdateien werden vom "Compiler" mit dem eigenen Programmcode verknüpft. Die Schnittstellen der Bibliothek ist in sogenannten "Headerdateien" definiert, die über die "Präprozessordirektive" ("#include") eingebunden werden.


Ein und Ausgabe: stdio.h

In der wahrscheinlich wichtigsten aller Bibliotheken sind alle Funktionen zusammengefasst, die für die Ein- und Ausgabe verantwortlich sind. Das betrifft die Eingabe über die Tastatur und die Ausgabe auf der Konsole oder auch das öffnen, lesen oder schreiben von Dateien.

  • puts(String-Ausdruck)

Schreibt den Wert des Stringausdrucks mit Zeilenumbruch am Ende.

  • printf(Format, Wert1, Wert2,…)

Ausgabe von Inhalten mit String und Formatplatzhalter, die als Werte übergeben werden.

  • sprintf(String-Variable, Format, Wert1, Wert2,…)

Wie "printf", nur das der Wert nicht ausgegeben, sondern in der String-Variable gespeichert wird.

  • scanf(Format, Adresse)

Werteingabe über Standardeingabe (Tastatur). Der Wert wird unter der Speicheradresse abgelegt.

  • gets(Variable)

Speichert String in der angegebenen Variable.

  • getchar()

Liest ein einzelnes Zeichen von der Standardeingabe.

  • fopen(Dateiname, Modus)

Öffnet eine Datei auf einem Datenträger. Modus: r (read = lesen), w (write = schreiben), a (append = anfügen).

  • fclose(Dateideskriptor)

Schließt die angegebene Datei.

  • fputs(Deskriptor, String-Ausdruck)

Schreib Wert vom String-Ausdruck mit Zeilenumbruch am Ende.

  • fprintf(Deskriptor, Format, Werte)

Wie "printf", schreibt aber in die Datei.

  • fscanf(Deskriptor, Format, Variable)

Wie scanf, liest aber aus der Datei.

  • fgets(Variable, Zeichenzahl, Deskriptor)

Liest String aus Datei bis zum angegeben Zeichenzahl erreicht oder Zeilenumbruch erreicht wurde.

  • fflush(Deskriptor)

Leert den Puffer des Eingabestroms.


String Funktion: string.h

Enthält Funktionen für die Manipulation und Analyse von Zeichenketten.

  • strcmp(String1, String2) / stricmp = kein Unterschied bei Groß- und Kleinschreibung.

Vergleicht die beiden Strings miteinander. Bei Gleichheit wird 0 zurückgegeben, positive und negative Rückgabe erfolgt nach alphanumerischer Reihenfolge bei Ungleichheit.

  • strncmp(String1, String2, n) / strnicmp = kein Unterschied bei Groß- und Kleinschreibung.

Vergleicht nur die ersten n Zeichen der beiden Strings.

  • strcpy(String1, String2)

Kopiert den Wert von String2 an die Adresse von String1.

  • strcat(String1, String2)

Hängt am Ende von String1 den Wert von String2 an.


Datum und Zeit: time.h

Hier sind verschiedene Funktionen für den Umgang mit Zeit und Datum definiert.

  • time(NULL)

Liefert die aktuelle Systemzeit.

  • localtime(*Zeitangabe)

Wandelt den Rückgabewert von "time" in eine vorformatierte Ortszeit um.

  • strftime(String, Zeichenzahl, Format, *localtime-Wert)

Formatiert die Zeitangabe unter Berücksichtigung des Formats. Das Ergebnis wird in einem String gespeichert.

Zeitausgabe

#include <stdio.h>
#include <time.h>

int main() {
 time_t jetzt;
 char zeit[20];
 jetzt = time(NULL);
 strftime(zeit, 19, "%d.%m.%Y, %H:%M", localtime(&jetzt));
 printf("Heute ist der: %s", zeit);
}
  • difftime(Zeitangabe1, Zeitangabe2)

Differenz zwischen den beiden Zeitangaben.


Mathematische Funktionen: math.h

  • cos()

Berechnet den Cosinus eines Winkels.

  • sin()

Berechnet den Sinus eines Winkels.

  • tan()

Berechnet den Tangens eines Winkels.

  • abs()

Berechnet den absoluten Wert einer Zahl.

  • pow()

Berechnet den Wert einer Zahl, die auf eine Potenz erhöht wird.

  • sqrt()

Berechnet die Quadratwurzel einer Zahl.

  • ceil()

Liefert den kleinsten ganzzahligen Wert, der nicht kleiner als der Parameter ist.

  • floor()

Liefert den größten ganzzahligen Wert, der nicht kleiner als der Parameter ist.

  • fabs()

Liefert den absoluten Wert einer Zahl.

  • isnan()

Prüft auf nicht numerische Werte.


Weiter mit Präprozessordirektive