Skip to content

amelmnd/libft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Libft (bibliothèque de fonctions)

Description

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.

Structure du projet

Fichiers .c

Où toutes les fonctions seront écrites.

.h (En-tete)

Inclure #include "libft.h" dans tous les fichiers .c afin d’avoir accès aux fonctions incluses (custom, lib C ou autres) partout.

Makefile

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

Les fonctions

Fonctions de <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)
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)
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

Fonctions de <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);

Fonctions de <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

Fonctions non standard

  • 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*));
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);

Utilisation de libft

Pre-requis

  • compilateur gcc

Utilisation

  • Gé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"

Test

Testeurs tiers permettant de tester le projet :

La francinette contient les testeurs cités ci-dessus et d'autres.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •