Skip to content

Latest commit

 

History

History
382 lines (317 loc) · 19.7 KB

README.md

File metadata and controls

382 lines (317 loc) · 19.7 KB

Libft

My own library of useful functions in C.

Summary

  1. Makefile
  2. Function list
  3. Details
Commande Actions
make Compile les .c et créer libft.a
make clean Supprime les .o.
make flcean Supprime les .o et libft.a.
make re Exécute fclean et make.
Function ft_memalloc
Prototype void * ft_memalloc(size_t size);
Description Alloue (avec malloc(3)) et retourne une zone de mémoire “fraiche”. La mémoire allouée est initialisée à 0. Si l’allocation échoue, la fonction renvoie NULL.
Param. #1 La taille de la zone de mémoire à allouer.
Retour La zone de mémoire allouée.
Fonctions libc malloc(3)

Function ft_memdel
Prototype void ft_memdel(void **ap);
Description Prend en paramètre l’adresse d’un pointeur dont la zone pointée doit être libérée avec free(3), puis le pointeur est mis à NULL.
Param. #1 L’adresse d’un pointeur dont il faut libérer la mémoire puis le mettre à NULL.
Retour Rien.
Fonctions libc free(3)

Function ft_strnew
Prototype char * ft_strnew(size_t size);
Description Alloue (avec malloc(3)) et retourne une chaine de caractère “fraiche” terminée par un ’\0’. Chaque caractère de la chaine est initialisé à ’\0’. Si l’allocation echoue, la fonction renvoie NULL.
Param. #1 La taille de la chaine de caractères à allouer.
Retour La chaine de caractères allouée et initialisée à 0.
Fonctions libc malloc(3)

Function ft_strdel
Prototype void ft_strdel(char **as);
Description Prend en paramètre l’adresse d’une chaine de caractères qui doit être libérée avec free(3) et son pointeur mis à NULL.
Param. #1 L’adresse de la chaine de caractère dont il faut libérer la mémoire et mettre le pointeur à NULL.
Retour Rien.
Fonctions libc free(3)

Function ft_strclr
Prototype void ft_strclr(char *s);
Description Assigne la valeur ’\0’ à tous les caractères de la chaine passée en paramètre.
Param. #1 La chaine de caractères à clearer.
Retour Rien.
Fonctions libc Aucune

Function ft_striter
Prototype void ft_striter(char *s, void (*f)(char *));
Description Applique la fonction f à chaque caractère de la chaine de caractères passée en paramètre. Chaque caractère est passé par adresse à la fonction f afin de pouvoir être modifié si nécéssaire.
Param. #1 La chaine de caractères sur laquelle itérer.
Param. #2 La fonction à appeler sur chaque caractère de s.
Retour Rien.
Fonctions libc Aucune

Function ft_striteri
Prototype void ft_striteri(char *s, void (*f)(unsigned int, char *));
Description Applique la fonction f à chaque caractère de la chaine de caractères passée en paramètre en précisant son index en premier argument. Chaque caractère est passé par adresse à la fonction f afin de pouvoir être modifié si nécéssaire.
Param. #1 La chaine de caractères sur laquelle itérer.
Param. #2 La fonction à appeler sur chaque caractère de s et son index.
Retour Rien.
Fonctions libc Aucune

Function ft_strmap
Prototype char * ft_strmap(char const *s, char (*f)(char));
Description Applique la fonction f à chaque caractère de la chaine de caractères passée en paramètre pour créer une nouvelle chaine “fraiche” (avec malloc(3)) résultant des applications successives de f.
Param. #1 La chaine de caractères sur laquelle itérer.
Param. #2 La fonction à appeler sur chaque caractère de s.
Retour La chaine “fraiche” résultant des applications successives de f.
Fonctions libc malloc(3)

Function ft_strmapi
Prototype char * ft_strmapi(char const *s, char (*f)(unsigned int, char));
Description Applique la fonction f à chaque caractère de la chaine de caractères passée en paramètre en précisant son index pour créer une nouvelle chaine “fraiche” (avec malloc(3)) résultant des applications successives de f.
Param. #1 La chaine de caractères sur laquelle itérer.
Param. #2 La fonction à appeler sur chaque caractère de s en précisant son index.
Retour La chaine “fraiche” résultant des applications successives de f.
Fonctions libc malloc(3)

Function ft_strnequ
Prototype int ft_strnequ(char const *s1, char const *s2, size_t n);
Description Compare lexicographiquement s1 et s2 jusqu’à n caractères maximum ou bien qu’un ’\0’ ait été rencontré. Si les deux chaines sont égales, la fonction retourne 1, ou 0 sinon.
Param. #1 La première des deux chaines à comparer.
Param. #2 La seconde des deux chaines à comparer.
Param. #3 Le nombre de caractères à comparer au maximum.
Retour 1 ou 0 selon que les deux chaines sont égales ou non.
Fonctions libc Aucune.

Function ft_strsub
Prototype char * ft_strsub(char const *s, unsigned int start, size_t len);
Description Alloue (avec malloc(3)) et retourne la copie “fraiche” d’un tronçon de la chaine de caractères passée en paramètre. Le tronçon commence à l’index start et à pour longueur len. Si start et len ne désignent pas un tronçon de chaine valide, le comportement est indéterminé. Si l’allocation échoue, la fonction renvoie NULL.
Param. #1 La chaine de caractères dans laquelle chercher le tronçon à copier.
Param. #2 L’index dans la chaine de caractères où débute le tronçon à copier.
Param. #3 La longueur du tronçon à copier.
Retour Le tronçon.
Fonctions libc malloc(3)

Function ft_strjoin
Prototype char * ft_strjoin(char const *s1, char const *s2);
Description Alloue (avec malloc(3)) et retourne une chaine de caractères “fraiche” terminée par un ’\0’ résultant de la concaténation de s1 et s2. Si l’allocation echoue, la fonction renvoie NULL.
Param. #1 La chaine de caractères préfixe.
Param. #2 La chaine de caractères suffixe.
Retour La chaine de caractère “fraiche” résultant de la concaténation des deux chaines.
Fonctions libc malloc(3)

Function ft_strtrim
Prototype char * ft_strtrim(char const *s);
Description Alloue (avec malloc(3)) et retourne une copie de la chaine passée en paramètre sans les espaces blancs au debut et à la fin de cette chaine. On considère comme espaces blancs les caractères ’ ’, ’\n’ et ’\t’. Si s ne contient pas d’espaces blancs au début ou à la fin, la fonction renvoie une copie de s. Si l’allocation echoue, la fonction renvoie NULL.
Param. #1 La chaine de caractères à trimmer.
Retour La chaine de caractère “fraiche” trimmée ou bien une copie de s sinon.
Fonctions libc malloc(3)

Function ft_strsplit
Prototype char ** ft_strsplit(char const *s, char c);
Description Alloue (avec malloc(3)) et retourne un tableau de chaines de caractères “fraiches” (toutes terminées par un ’\0’, le tableau également donc) résultant de la découpe de s selon le caractère c. Si l’allocation echoue, la fonction retourne NULL. Exemple : ft_strsplit("salutles*etudiants", ’’) renvoie le tableau ["salut", "les", "etudiants"].
Param. #1 La chaine de caractères à découper.
Param. #2 Le caractère selon lequel découper la chaine.
Retour Le tableau de chaines de caractères “fraiches” résultant de la découpe.
Fonctions libc malloc(3), free(3)

Function ft_itoa
Prototype char * ft_itoa(int n);
Description Alloue (avec malloc(3)) et retourne une chaine de caractères “fraiche” terminée par un ’\0’ représentant l’entier n passé en paramètre. Les nombres négatifs doivent être gérés. Si l’allocation échoue, la fonction renvoie NULL.
Param. #1 L’entier à convertir en une chaine de caractères.
Retour La chaine de caractères représentant l’entier passé en paramètre.
Fonctions libc malloc(3)

Function ft_putchar
Prototype void ft_putchar(char c);
Description Affiche le caractère c sur la sortie standard.
Param. #1 Le caractères à afficher.
Retour Rien.
Fonctions libc write(2)

Function ft_putstr
Prototype void ft_putstr(char const *s);
Description Affiche la chaine s sur la sortie standard.
Param. #1 La chaine de caractères à afficher.
Retour Rien.
Fonctions libc write(2)

Function ft_putendl
Prototype void ft_putendl(char const *s);
Description Affiche la chaine s sur la sortie standard suivi d’un ’\n’.
Param. #1 La chaine de caractères à afficher.
Retour Rien.
Fonctions libc write(2)

Function ft_putnbr
Prototype void ft_putnbr(int n);
Description Affiche l’entier n sur la sortie standard.
Param. #1 L’entier à afficher.
Retour Rien.
Fonctions libc write(2)

Function ft_putchar_fd
Prototype void ft_putchar_fd(char c, int fd);
Description Ecrit le caractère c sur le descripteur de fichier fd.
Param. #1 Le caractères à écrire.
Retour Rien.
Fonctions libc write(2)

Function ft_putstr_fd
Prototype void ft_putstr_fd(char const *s, int fd);
Description Ecrit la chaine s sur le descripteur de fichier fd.
Param. #1 La chaine de caractères à écrire.
Retour Rien.
Fonctions libc write(2)

Function ft_putendl_fd
Prototype void ft_putendl_fd(char const *s, int fd);
Description Ecrit la chaine s sur le descripteur de fichier fd suivi d’un ’\n’.
Param. #1 La chaine de caractères à écrire.
Retour Rien.
Fonctions libc write(2)

Function ft_putnbr_fd
Prototype void ft_putnbr_fd(int n, int fd);
Description Ecrit l’entier n sur le descripteur de fichier fd.
Param. #1 L’entier à écrire.
Retour Rien.
Fonctions libc write(2)

Function ft_lstnew
Prototype t_list * ft_lstnew(void const *content, size_t content_size);
Description Alloue (avec malloc(3)) et retourne un maillon “frais”. Les champs content et content_size du nouveau maillon sont initialisés par copie des paramètres de la fonction. Si le paramètre content est nul, le champs content est initialisé à NULL et le champs content_size est initialisé à 0 quelque soit la valeur du paramètre content_size. Le champ next est initialisé à NULL. Si l’allocation échoue, la fonction renvoie NULL.
Param. #1 Le contenu à ajouter au nouveau maillon.
Param. #2 La taille du contenu à ajouter au nouveau maillon.
Retour Le nouveau maillon.
Fonctions libc malloc(3), free(3)

Function ft_lstdelone
Prototype void ft_lstdelone(t_list **alst, void (*del)(void *, size_t));
Description Prend en paramètre l’adresse d’un pointeur sur un maillon et libère la mémoire du contenu de ce maillon avec la fonction del passée en paramètre puis libère la mémoire du maillon en lui même avec free(3). La mémoire du champ next ne doit en aucun cas être libérée. Pour terminer, le pointeur sur le maillon maintenant libéré doit être mis à NULL (de manière similaire à la fonction ft_memdel de la partie obligatoire).
Param. #1 L’adresse d’un pointeur sur le maillon à libérer.
Retour Rien.
Fonctions libc free(3)

Function ft_lstdel
Prototype void ft_lstdel(t_list **alst, void (*del)(void *, size_t));
Description Prend en paramètre l’adresse d’un pointeur sur un maillon et libère la mémoire de ce maillon et celle de tous ses successeurs l’un après l’autre avec del et free(3). Pour terminer, le pointeur sur le premier maillon maintenant libéré doit être mis à NULL (de manière similaire à la fonction ft_memdel de la partie obligatoire).
Param. #1 L’adresse d’un pointeur sur le premier maillon d’une liste à libérer.
Retour Rien.
Fonctions libc free(3)

Function ft_lstadd
Prototype void ft_lstadd(t_list **alst, t_list *new);
Description Ajoute l’élément new en tête de la liste.
Param. #1 L’adresse d’un pointeur sur le premier maillon d’une liste.
Param. #2 Le maillon à ajouter en tête de cette liste.
Retour Rien.
Fonctions libc Aucune.

Function ft_lstiter
Prototype void ft_lstiter(t_list *lst, void (*f)(t_list *elem));
Description Parcourt la liste lst en appliquant à chaque maillon la fonction f.
Param. #1 Pointeur sur le premier maillon d’une liste.
Param. #2 L’adresse d’une fonction à laquelle appliquer chaque maillon de la liste.
Retour Rien.
Fonctions libc Aucune.

Function ft_lstmap
Prototype t_list * ft_lstmap(t_list *lst, t_list * (*f)(t_list *elem));
Description Parcourt la liste lst en appliquant à chaque maillon la fonction f et crée une nouvelle liste “fraiche” avec malloc(3) résultant des applications successives. Si une allocation échoue, la fonction renvoie NULL.
Param. #1 Pointeur sur le premier maillon d’une liste.
Param. #2 L’adresse d’une fonction à appliquer à chaque maillon de la liste pour crér une nouvelle liste.
Retour La nouvelle liste.
Fonctions libc malloc(3), free(3).