Loading repository data…
Loading repository data…
amelmnd / repository
Projet scolaire qui a pour but de réécrire des fonctions C pour les comprendre
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.
make
make compil
<ctype.h>ft_isalpha - vérifie si c est 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 si c est un chiffre (0 à 9).int isdigit(int c);
return 1 (true) ou 0 (false)
ft_isalnum - vérifie si c est un caractère alphanumérique.int isalnum(int c);
return 1 (true) ou 0 (false)
ft_isascii - vérifie si c rentre dans le jeu de caractères ASCII.int isascii(int c);
return 1 (true) ou 0 (false)
ft_isprint - vérifie si c est un caractère imprimable.int isprint(int c);
return 1 (true) ou 0 (false)
ft_toupper - vérifie et convertit si besoin le caractère c de lettre minuscule à une lettre majuscule.int toupper(int c);
return c
ft_tolower - vérifie et convertit si besoin le caractère c de lettre majuscule à une lettre minuscule.int ft_tolower(int c);
return c
<string.h>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ères str.Renvoie la longueur de la chaîne, \0 non compris.
size_t ft_strlen(const char *str);
return str_size
ft_bzero - met à 0 les n premiers octets du bloc pointé par *s.void ft_bzero(void *s, size_t n);
ft_strlcpy - copie le contenu str dans dest, copie sur dstsize - 1 caractères, \0 final 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 - ajoute dstsize - 1 caractères à la fin de str dans dest, caractères \0 final 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ère c dans 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ère c dans une chaîne 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_strrchr(const char *s, int c);
return *c ou NULL
ft_strnstr - localise la première occurrence d'une sous-chaîne needle dans une chaîne haystack sur len caractè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 que strchr.int ft_memcmp(const void *pointer1, const void *pointer2, size_t size);
return *x ou NULL
ft_memcpy - copie n octets depuis la zone mémoire src vers la zone mémoire dest. Les deux zones ne doivent pas se chevaucher. Si c'est le cas, utilisez plutôt ft_memmove.void *ft_memcpy(void *dst, const void *src, size_t n);
ft_memmove - copie len octets depuis la zone mémoire src vers la zone mémoire dest. Les deux zones peuvent se chevaucher.void *ft_memmove(void *dst, const void *src, size_t len);
<stdlib.h>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 pour count éléments consécutifs, de type size, 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îne s, commençant à l’index start et ayant pour taille maximale len.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 de s1 et s2.char *ft_strjoin(char const *s1, char const *s2);
return s1s2
ft_strtrim - Alloue et retourne une copie de la chaîne s1, sans les caractères spécifiés présents dans set au 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éparant s à l’aide du caractère c, utilisé comme délimiteur. Le tableau doit être terminé par NULL.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’entier n reçu en argument. Les nombres négatifs doivent être gérés.char *ft_itoa(int n);
return str
ft_strmapi - Applique la fonction f à 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 de f.char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
return str
ft_striteri - Applique la fonction f à 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 à f afin d’être modifié si nécessaire.void ft_striteri(char *s, void (*f)(unsigned int, char*));
ft_putchar_fd - Écrit le caractère c sur le descripteur de fichier fd.void ft_putchar_fd(char c, int fd);
ft_putstr_fd - Écrit la chaîne de caractères s sur le descripteur de fichier fd.void ft_putstr_fd(char *s, int fd);
ft_putendl_fd - Écrit la chaîne de caractères s sur le descripteur de fichier fd suivie d’un retour à la ligne.void ft_putendl_fd(char *s, int fd);
ft_putnbr_fd - Écrit l’entier n sur le descripteur de fichier fd.void ft_putnbr_fd(int n, int fd);
gccGérer le fichier de lib .a :
Dans le terminal, au niveau du dossier libft, lancer la commande make.
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.