La librairie standard

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 :

  1. <stdio.h>
  2. <ctype.h>
  3. <string.h>
  4. <math.h>
  5. <stdlib.h>
  6. <time.h>

1. <stdio.h>

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.

2. <ctype.h>

<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

3. <string.h>

<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.

4. <math.h>

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.

5. <stdlib.h>

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.

6. <time.h>

<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.
<

Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++