Le but de ce projet est de réécrire des fonctions qui existent en C, pour les comprendre, revoir les bases de C et travailler son algorithmie. Ce projet servira de bibliothèque de fonctions de base à tous les projets suivants.
Où toutes les fonctions seront écrites.
Inclure #include "libft.h" dans tous les fichiers .c afin d’avoir accès aux fonctions incluses (custom, lib C ou autres) partout.
Makefile, fichier pour compiler le projet.
- Créer la lib pour l'utiliser dans un projet
make- Compiler la lib et l'exécuter pour tester une fonction, nécessite un main (présent ici)
make compil-
ft_isalpha- vérifie sicest un caractère alphabétique ou non (a-z ou A-Z).
int isalpha(int c);
return 1 (true) ou 0 (false)-
ft_isdigit- vérifie sicest un chiffre (0 à 9).
int isdigit(int c);
return 1 (true) ou 0 (false)-
ft_isalnum- vérifie sicest un caractère alphanumérique.
int isalnum(int c);
return 1 (true) ou 0 (false)-
ft_isascii- vérifie sicrentre dans le jeu de caractères ASCII.
int isascii(int c);
return 1 (true) ou 0 (false)-
ft_isprint- vérifie sicest un caractère imprimable.
int isprint(int c);
return 1 (true) ou 0 (false)-
ft_toupper- vérifie et convertit si besoin le caractèrecde lettre minuscule à une lettre majuscule.
int toupper(int c);
return c-
ft_tolower- vérifie et convertit si besoin le caractèrecde lettre majuscule à une lettre minuscule.
int ft_tolower(int c);
return c-
ft_memset- permet de remplir une zone mémoire, identifiée par son adresse (*b) et sa taille (len), avec une valeur précise (c).
void *ft_memset(void *b, int c, size_t len);-
ft_strlen- calcule la longueur, exprimée en nombre de caractères, de la chaîne de caractèresstr.
Renvoie la longueur de la chaîne, \0 non compris.
size_t ft_strlen(const char *str);
return str_size-
ft_bzero- met à 0 lesnpremiers octets du bloc pointé par*s.
void ft_bzero(void *s, size_t n);-
ft_strlcpy- copie le contenustrdansdest, copie surdstsize - 1caractères,\0final non compris, et termine le résultat par\0.
Renvoie la longueur totale de la chaîne qu'elle a tenté de créer.
size_t ft_strlcpy(char *dst, const char *src, size_t dstsize);
return size-
ft_strlcat- ajoutedstsize - 1caractères à la fin destrdansdest, caractères\0final non compris, et termine le résultat par\0.
Renvoie la longueur totale de la chaîne qu'elle a tenté de créer.
size_t ft_strlcat(char *dst, const char *src, size_t dstsize);
return size-
ft_strchr- recherche la première occurrence du caractèrecdans la chaîne de caractères*s.
Renvoie un pointeur sur la première occurrence du caractère ou NULL si le caractère n'est pas présent.
char *ft_strchr(const char *s, int c);
return *c ou NULL-
ft_strrchr- recherche un caractèrecdans une chaînes.
Renvoie un pointeur sur la première occurrence du caractère ou NULL si le caractère n'est pas présent.
char *ft_strrchr(const char *s, int c);
return *c ou NULL-
ft_strnstr- localise la première occurrence d'une sous-chaîneneedledans une chaînehaystacksurlencaractères.
Renvoie un pointeur sur la première occurrence trouvée.
char *ft_strnstr(const char *haystack, const char *needle, size_t len);
return *c ou NULL-
ft_strdup- duplique une chaîne de caractères en lui allouant une nouvelle zone de mémoire.
Renvoie l'adresse de la chaîne dupliquée, s'il y a suffisamment de mémoire pour produire la nouvelle chaîne, sinon NULL.
char *ft_strdup(const char *s);
return *x ou NULL-
ft_strncmp- compare deux chaînes de caractères, caractères par caractères, selon les valeurs numériques des codes ASCII (ou Unicode, selon l'encodage utilisé).
Renvoie une valeur nulle si les deux chaînes sont égales ; une valeur négative si le caractère de la première chaîne est plus petit que celui de la seconde (dans l'ordre lexicographique) ; une valeur positive si le caractère de la première chaîne est plus grand que celui de la seconde.
int ft_strncmp(const char *s1, const char *s2, size_t n);
return *x ou NULL-
ft_memchr- recherche la première occurrence d'une valeur typée int, mais interprétée en tant que char, dans un bloc de mémoire.
void *ft_memchr(const void *str, int c, size_t n);
return *x ou NULL-
ft_memcmp- compare les zones mémoire de la même manière questrchr.
int ft_memcmp(const void *pointer1, const void *pointer2, size_t size);
return *x ou NULL-
ft_memcpy- copienoctets depuis la zone mémoiresrcvers la zone mémoiredest. Les deux zones ne doivent pas se chevaucher. Si c'est le cas, utilisez plutôtft_memmove.
void *ft_memcpy(void *dst, const void *src, size_t n);-
ft_memmove- copielenoctets depuis la zone mémoiresrcvers la zone mémoiredest. Les deux zones peuvent se chevaucher.
void *ft_memmove(void *dst, const void *src, size_t len);-
ft_atoi- (ASCII to integer) convertit une chaîne de caractères représentant une valeur entière en une valeur numérique de type int.
Retourne la valeur int produite.
int ft_atoi(char *str);
return nb-
ft_calloc- alloue de la mémoire pourcountéléments consécutifs, de typesize, et définit les valeurs de ses octets sur 0.
Retourne un pointeur vers la zone mémoire réservée ou NULL si count ou size vaut 0.
void *ft_calloc(size_t count, size_t size);
return (void *) element ou NULL-
ft_substr- Alloue et retourne une chaîne de caractères issue de la chaînes, commençant à l’indexstartet ayant pour taille maximalelen.
char *ft_substr(char const *s, unsigned int start, size_t len);
return str-
ft_strjoin- Alloue et retourne une nouvelle chaîne, résultat de la concaténation des1ets2.
char *ft_strjoin(char const *s1, char const *s2);
return s1s2-
ft_strtrim- Alloue et retourne une copie de la chaînes1, sans les caractères spécifiés présents danssetau début et à la fin de la chaîne de caractères.
char *ft_strtrim(char const *s1, char const *set);
return str-
ft_split- Alloue et retourne un tableau de chaînes de caractères obtenu en séparantsà l’aide du caractèrec, utilisé comme délimiteur. Le tableau doit être terminé parNULL.
char **ft_split(char const *s, char sep);
return (char **)tab-
ft_itoa- (integer to ASCII = inverse atoi) Alloue et retourne une chaîne de caractères représentant l’entiernreçu en argument. Les nombres négatifs doivent être gérés.
char *ft_itoa(int n);
return str-
ft_strmapi- Applique la fonctionfà chaque caractère de la chaîne de caractères passée en argument pour créer une nouvelle chaîne de caractères résultant des applications successives def.
char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
return str-
ft_striteri- Applique la fonctionfà chaque caractère de la chaîne de caractères transmise comme argument, et en passant son index comme premier argument. Chaque caractère est transmis par adresse àfafin d’être modifié si nécessaire.
void ft_striteri(char *s, void (*f)(unsigned int, char*));-
ft_putchar_fd- Écrit le caractèrecsur le descripteur de fichierfd.
void ft_putchar_fd(char c, int fd);-
ft_putstr_fd- Écrit la chaîne de caractèresssur le descripteur de fichierfd.
void ft_putstr_fd(char *s, int fd);-
ft_putendl_fd- Écrit la chaîne de caractèresssur le descripteur de fichierfdsuivie d’un retour à la ligne.
void ft_putendl_fd(char *s, int fd);-
ft_putnbr_fd- Écrit l’entiernsur le descripteur de fichierfd.
void ft_putnbr_fd(int n, int fd);- compilateur
gcc
-
Gérer le fichier de lib
.a: Dans le terminal, au niveau du dossier libft, lancer la commandemake. -
Utiliser les fonctions de la bibliothèque libft dans son code :
Incluez le fichier d'en-tête
#include "libft.h"Testeurs tiers permettant de tester le projet :
La francinette contient les testeurs cités ci-dessus et d'autres.