My implementation of some useful C functions and some additional ones to use it in future projects of 42.
- Status: still updating (I use libft a lot so I keep improving it)
- Result: 125%
- Observations: (null)
- Clone libft into your project folder
git clone https://github.com/izenynn/libft.git
- Run make inside libft folder (make rules: all, clean, fclean, re)
make
- Include libft.h in the header of your C file
#include <libft.h>
- Or include only the part that you are going to use (list of functions below)
#include <libft/ft_char.h>
#include <libft/ft_str.h>
#include <libft/ft_mem.h>
#include <libft/ft_nbr.h>
#include <libft/ft_fd.h>
#include <libft/ft_lst.h>
#include <libft/ft_dlst.h>
#include <libft/ft_printf.h>
- Just make sure you add libft (
libft.a
) and you specifylibft.h
path (-I
flag) when you compile
gcc (...)(.c files) -o (output file) ./libft/libft.a -I ./libft/inc
- If you want to compile firts your .c files into
.o
, you will need to specify the-c
flag (no linking) when compiling to.o
files, and indicate thelibft.h
path with the-I
flag
gcc -c (.c file) -o (.o output file) -I ./libft/inc
- Now we will compile all the
.o
into a program, and do the linking part with-L
and-l
, just specify thelibft.a
path with the-L
flag
gcc (...)(.o files) -o (output file) -I ./libft/inc -L ./libft -lft
- ✨ Magic ✨
- ft_islower -
int ft_islower(int c)
- ft_isupper -
int ft_isupper(int c)
- ft_isspace -
int ft_isspace(int c)
- ft_isblank -
int ft_isblank(int c)
- ft_isalpha -
int ft_isalpha(int c)
- ft_isdigit -
int ft_isdigit(int c)
- ft_isalnum -
int ft_isalnum(int c)
- ft_isascii -
int ft_isascii(int c)
- ft_isprint -
int ft_isprint(int c)
- ft_iscntrl -
int ft_iscntrl(int c)
- ft_tolower -
int ft_tolower(int c)
- ft_toupper -
int ft_toupper(int c)
- ft_strlen -
size_t ft_strlen(const char *s
- ft_strcpy -
char *ft_strcpy(char *dst, const char *src)
- ft_strlcpy -
size_t ft_strlcpy(char *dst, const char *src, size_t dstsize)
- ft_strcat -
char *ft_strcat(char *s1, const char *s2)
- ft_strlcat -
size_t ft_strlcat(char *dst, const char *src, size_t dstsize)
- ft_strchr -
char *ft_strchr(const char *s, int c)
- ft_strrchr -
char *ft_strrchr(const char *s, int c)
- ft_strcmp -
int ft_strcmp(const char *s1, const char *s2)
- ft_strncmp -
int ft_strncmp(const char *s1, const char *s2, size_t n)
- ft_strnstr -
char *ft_strnstr(const char *haystack, const char *needle, size_t len)
- ft_strdup -
char *ft_strdup(const char *s1)
- ft_substr -
char *ft_substr(const char *s, unsigned int start, size_t len)
- ft_strjoin -
char *ft_strjoin(const char *s1, const char *s2)
- ft_strtrim -
char *ft_strtrim(const char *s1, const char *set)
- ft_split -
char **ft_split(const char *s1, const char *set)
- ft_strmap -
char *ft_strmap(const char *s, char (*f)(char))
- ft_strmapi -
char *ft_strmapi(const char *s, char (*f)(unsigned int, char))
- ft_striter -
void ft_striter(char *s, void (*f)(char *))
- ft_striteri -
void ft_striteri(char *s, void (*f)(unsigned int, char *))
- ft_strrev -
char *ft_strrev(char *s)
- ft_memset
- ft_bzero
- ft_memcpy
- ft_memmove
- ft_memchr
- ft_memcmp
- ft_calloc
- ft_realloc
- ft_atoi
- ft_itoa
- ft_atoi_base
- ft_itoa_base
- ft_convert_base
- ft_intlen
- ft_intlen_base
- ft_uintlen
- ft_uintlen_base
- ft_ulonglen
- ft_ulonglen_base
- ft_putchar_fd
- ft_putstr_fd
- ft_putendl_fd
- ft_putnbr_fd
- ft_putmem_fd
- ft_get_next_line
- ft_lstnew
- ft_lstadd_front
- ft_lstadd_back
- ft_lstsize
- ft_lstlast
- ft_lstdelone
- ft_lstclear
- ft_lstiter
- ft_lstmap
- ft_dlstnew
- ft_dlstadd_front
- ft_dlstadd_back
- ft_dlstsize
- ft_dlstfirst
- ft_dlstlast
- ft_dlstdelone
- ft_dlstclear
- ft_dlstiter
- ft_dlstmap
- ft_printf
- ft_dprintf
%c
print a single character.%s
print a string of characters.%p
the void * pointer argument is printed in hexadecimal.%d
print a decimal (base 10) number.%i
print an integer in base 10.%u
print an unsigned decimal (base 10) number%x
print a number in hexadecimal (base 16) with lowercase.%X
print a number in hexadecimal (base 16) with uppercase.%%
print a percent sign.-
left-justify within the given field width; Right justification is the default.0
left-pads the number with zeroes (0) instead of spaces when padding is specified..
the precision in not specified in the format string, but as an additional integer value argument preceding the argument that has to be formated.#
used with x or X specifiers the value is preceeded with 0x or 0X respectively for the values different than zero.(space)
if no sign is going to be written, a blank space is inserted before the value.+
forces to preceed the result with a plus or minus sign (+ or -) even for positive numbers. By default, only negative numbers are preceded with a - sign.