La librairie standard constitue un ensemble de sous librairies (entêtes) qui sont constituées par les principales fonctions du langage C. Il est impératif pour toute personne souhaitant être un bon codeur C, d’avoir une maitrise parfaite de cette librairie. D’ailleurs, toutes les librairies C en dehors de cette librairie, sont codées à partir de la librairie standard.
Voici une liste de sous-librairies (entêtes) de la librairie standard : <assert.h>, <complex.h>,
<ctype.h>, <errno.h>, <fenv.h>, <float.h>, <inttypes.h>, <iso646.h>,
<limits.h>, <locale.h>, <math.h>, <setjmp.h>, <signal.h>, <stdarg.h>,
<stdbool.h>, <stddef.h>, <stdint.h>, <stdint.h>, <stdlib.h>, <string.h>,
<tgmath.h>, <time.h>, <wchar.h>, <wctype.h>…
Malgré, cette liste importante des entêtes, ici nous n’allons voir que ceux qui sont les plus utilisées. Elles
s’agissent de :
Fonction | Syntaxe | Action |
fgetc | int fgetc(FILE *flux) | permet de lire un caractère depuis un fichier |
fputc | int fputc(int c, FILE *flux) | permet d'écrire un caractère sur un fichier |
getc | int getc(FILE *flux) | équivalent de fgetc mais implémenté par une macro |
putc | int putc(int c, FILE *flux) | équivalent de fputc mais implémenté par une macro |
getchar | int getchar(void) | permet de lire un caractère depuis l'entrée standard |
putchar | int putchar(int c) | permet d'écrire un caractère sur la sortie standard |
fgets | char *fgets(char *s, FILE *flux) | permet de lire une chaîne de caractères depuis un fichier |
fputs | int *fputs(char *s, FILE *flux) | permet d'écrire une chaîne de caractères sur un fichier |
gets | char *gets(char *s) | permet de lire une chaîne de caractères sur l'entrée standard |
puts | int *puts(char *s) | permet d'écrire une chaîne de caractères sur la sortie standard |
fopen | FILE * fopen (chemin, mode d’ouverture); | permet d'ouvrir un fichier |
fclose | int fclose (File *flux à fermer) | permet de fermet un fichier |
fflush | int fflush(FILE *flux) | permet d'écrire des buffers en mémoire dans un fichier |
fprintf | int fprintf(FILE *flux, char *format, ...) | permet d'écrire sur un fichier |
fscanf | int fscanf(FILE *flux, char *format, ...) | permet de lire depuis un fichier |
printf | int printf(char *format, ...) | permet d'écrire sur la sortie standard |
scanf | int scanf(char *format, ...) | permet de lire depuis l'entrée standard |
sprintf | int sprintf(char *s, char *format, ...) | permet d'ecrire dans la chaîne de caractères s |
sscanf | int sscanf(char *s, char *format, ...) | permet de lire depuis la chaîne de caractères s |
Les fonctions listées sur le tableau ci-dessus, ne sont pas seulement les fonctions de la librairie stdio.h, cependant elles restent les plus utilisées.
<ctype.h> constitue un ensemble des fonctions utilisées pour manipuler des caractères.
Ci-dessous, un tableau regroupant certaines fonctions de <ctype.h>.
Fonction | Syntaxe | Action |
isalnum | int isalnum(int c); | Elle vérifie si le caractère passé est alphanumérique. |
isalpha | int isalpha(int c); | Elle vérifie si le caractère passé est une lettre |
iscntrl | int iscntrl(int c); | Elle vérifie si le caractère passé s'agit d'un caractère de commande |
isdigit | int isdigit(int c); | Elle vérifie si le caractère passé est un chiffre décimal. |
isgraph | int isgraph(int c); | Elle vérifie si le caractère passé est une représentation graphique ou un blanc |
islower | int islower(int c); | Elle vérifie si le caractère passé est minuscule. |
isprint | int isprint(int c); | Elle vérifie si le caractère passé est imprimable. |
ispunct | int ispunct(int c); | Elle vérifie si le caractère passé est un caractère de ponctuation. |
isspace | int isspace(int c); | Elle vérifie si le caractère passé est un blanc |
isupper | int isupper(int c); | Elle vérifie si le caractère passé s'agit d'une lettre majuscule |
isxdigit | int isupper(int c); | Elle vérifie si le caractère passé s'agit d'un chiffre hexadécimal |
tolower | int tolower(int c) | elle convertit c en minuscule si c'est une lettre majuscule. |
toupper | int toupper(int c) | elle convertit c en majuscule si c'est une lettre minuscule |
<string.h> un ensemble des fonctions utilisées pour manipuler des chaînes de caractères.
Ci-dessous, un tableau regroupant certaines fonctions de <string.h>.
Fonction | Syntaxe | Action |
memchr | void *memchr(const void *ch, int c, size_t n) | Recherches pour la première occurrence du caractère c (unsigned char) dans les n premiers octets de la chaîne pointée par l'argument ch. |
memcmp | int memcmp(const void *ch1, const void *ch2, size_t n) | Compare les n premiers octets de ch1 et ch2. |
memcpy | void *memcpy(void *dest, const void *src, size_t n) | copie n caractères de src vers dest. |
memmove | void *memmove(void *ch1, const void *ch2, size_t n) | copie n caractères de ch2 à ch1. |
memset | void *memset(void *ch, int c, size_t n) | copie le caractère c (unsigned char) aux n premiers caractères de la chaîne pointée par l'argument ch. |
strcpy | char *strcpy(char *ch1, char *ch2) | copie la chaîne ch2 dans la chaîne ch1 ; retourne ch1. |
strncpy | char *strcpy(char *ch1, char *ch2, int n) | copie n caractères de la chaîne ch2 dans la chaîne ch1 ; retourne ch1. |
strcat | char *strcat(char *ch1, char *ch2) | copie la chaîne ch2 à la fin de la chaîne ch1 ; retourne ch1. |
strncat | char *strncat(char *ch1, char *ch2, int n) | copie n caractères de la chaîne ch2 à la fin de la chaîne ch1 ; retourne ch1. |
strcmp | int strcmp(char *ch1, char *ch2) | Compare la chaîne pointée par ch1 à la chaîne pointée par ch2; retourne une valeur négative si ch1 est inférieure à ch2, une valeur positive si ch1 est supérieure à ch2, 0 si elles sont identiques. |
strncmp | int strcmp(char *ch1, char *ch2, int n) | compare les n premiers caractères de ch1 et ch2. |
strchr | char *strchr(char *ch, char c) | Recherches pour la première occurrence du caractère c (unsigned char) dans la chaîne pointée par l'argument ch. |
strrchr | char *strchr(char *ch, char c) | Recherches pour la dernière occurrence du caractère c (unsigned char) dans la chaîne pointée par l'argument ch. |
strstr | char *strchr(char *ch1, char *ch2) | Trouve la première occurrence de la chaîne ch2 dans la chaîne ch1 |
strlen | int strlen(char *ch) | retourne la longueur de ch. |
La bibliothèque math constitue un ensemble des fonctions mathématiques. Tous les paramètres et les résultats sont de type double, les angles sont en radians.
Ci-dessous, un tableau qui liste différentes fonctions de cette bibliothèque :
Fonction | Syntaxe | Action |
acos | double acos(double x) | Retourne l'arc cosinus de x, en radians. |
asin | double asin(double x) | Retourne l'arc sinus de x, en radians. |
atan | double atan(double x) | Retourne l'arc tangente de x, en radians. |
atan2 | double atan2(doubly y, double x) | Retourne l'arc tangente de y/x |
cos | double cos(double x) | Retourne le cosinus de x, en radians. |
sin | double sin(double x) | Retourne le sinus de x, en radians. |
tan | double tan(double x) | Retourne la tangente de x, en radians. |
cosh | double cosh(double x) | Retourne le cosinus hyperbolique de x. |
sinh | double sinh(double x) | Retourne le sinus hyperbolique de x. |
tanh | double tanh(double x) | Retourne la tangente hyperbolique de x. |
exp | double exp(double x) | exponentielle |
log | double log(double x) | Renvoie le logarithme népérien de x. |
log10 | double log10(double x) | Retourne le logarithme décimal (logarithme en base 10) de x. |
fmod | double modf(double x, double *integer) | Retourne le reste de la division |
pow | double pow(double x, double y) | Retourne la valeur de x élevé à la puissance de y. |
sqrt | double sqrt(double x) | Renvoie la racine carrée de x. |
ceil | double ceil(double x) | Retourne le plus petit nombre entier supérieur ou égal à x. |
fabs | double fabs(double x) | Retourne la valeur absolue de x |
floor | double floor(double x) | Retourne le plus grand entier inférieur ou égal à x. |
Tout comme stdio.h, stlib.b est une des bibliothèques les plus incontournables du langage C.
Ci-dessous, un tableau qui liste différentes fonctions de cette bibliothèque :
Fonction | Syntaxe | Action |
atof | double atof(const char *ch) | Convertit la chaîne pointée par l'argument ch à un nombre à virgule flottante de type double. |
atoi | int atoi(const char *ch) | Convertit la chaîne pointée par l'argument ch en un entier de type int |
atol | long int atol(const char *ch) | Convertit la chaîne pointée par l'argument ch en un entier de type long int |
strtod | double strtod(const char *ch, char **endptr) | Convertit la chaîne pointée par l'argument ch à un nombre à virgule flottante de type double. |
strtol | long int strtol(const char *ch, char **endptr, int base) | Convertit la chaîne pointée par l'argument ch en un entier de type long. |
strtoul | unsigned long int strtoul(const char *ch, char **endptr, int base) | Convertit la chaîne pointée par l'argument ch à un entier long non signé. |
calloc | void *calloc(size_t nitems, size_t size) | allocation dynamique et initialisation à zéro. |
free | void free(void *ptr) | libère une zone mémoire |
malloc | void *malloc(size_t size) | Alloue la mémoire demandée et renvoie un pointeur vers elle. |
realloc | void *realloc(void *ptr, size_t size) | modifie la taille d'une zone préalablement allouée par calloc ou malloc. |
abort | void abort(void) | Provoque une terminaison anormale du programme. |
atexit | int atexit(void (*fonction)(void)) | il permet à la fonction specifiée d'être appelée lorsque le programme se termine normalement. |
exit | void exit(int status) | cause un arrêt normale du programme. |
system | int system(const char *string) | La commande spécifiée par chaîne est transmise à l'environnement hôte pour être exécuté par le processeur de commande. |
abs | int abs(int x) | Retourne la valeur absolue de x. |
div | div_t div(int x, int y) | il fait la division de x sur y |
labs | long int labs(long int x) | Retourne la valeur absolue de x. |
ldiv | ldiv_t ldiv(long int x, long int y) | il fait la division de x sur y |
mblen | int mblen(const char *ch, size_t n) | Retourne la longueur d'un caractère multi-octets pointée par l'argument ch. |
mbstowcs | size_t mbstowcs(schar_t *pwcs, const char *ch, size_t n) | Convertit la chaîne de caractères multi-octets pointée par l'argument ch au tableau pointée par pwcs |
mbtowc | int mbtowc(whcar_t *pwc, const char *ch, size_t n) les motomarines. | Examine les caractères multi-octets pointée par l'argument ch. |
wcstombs | size_t wcstombs(char *ch, const wchar_t *pwcs, size_t n) | Convertit les codes stockés dans le tableau pwcs et les stocke dans la chaîne ch. |
wctomb | int wctomb(char *str, wchar_t wchar) | Examine le code qui correspond à un caractère multi-octets indiquée par l'argument wchar. |
<time.h> constitue un ensemble de fonctions permettant de gérer le temps.
Fonction | Syntaxe | Action |
asctime | char *asctime(const struct tm *timeptr) | Renvoie un pointeur sur une chaîne de caractères qui représente le jour et l'heure de la structure timeptr |
clock | clock_t clock(void) | Renvoie l'heure d'horloge du processeur |
ctime | char *ctime(const time_t *timer) | convertit le temps système *timer en une chaîne de caractères explicitant la date et l'heure sous un format prédéterminé. |
difftime | double difftime(time_t time1, time_t time2) | retourne la différence time1 - time2 en secondes. |
gmtime | struct tm *gmtime(const time_t *timer) | La valeur de la temporisation est divisé en une structure tm et exprimée en temps universel coordonné (UTC), aussi appelé Greenwich Mean Time (GMT). |
localtime | struct tm *localtime(const time_t *timer) | La valeur de la temporisation est divisé en une structure tm et exprimée dans le fuseau horaire local. |
mktime | time_t mktime(struct tm *timeptr) | Convertit la structure pointée par timeptr en valeur time_t selon le fuseau horaire local. |
time | time_t time(time_t *timer) | retourne le nombre de secondes écoulées depuis le 1er janvier 1970, 0 heures G.M.T. La valeur retournée est assignée à *timer. |