Libft is the very first project available at 42 schools.
The assignement is pretty straight forward: re-implement some of the LIBC functions. The point of doing such exercise, is to build basic knowledge on the inner working of C strings. Re-implementing a library might seem tedious and potentially useless: "Why should I create tools that already exist?". Although I would argue it is crucial for any developper to aquire an advanced understanding of C. The way it forces the developper into implementing its own solutions from scratch, allows for great problem solving ability improvement. That added to the low level features of C, makes room for performance, freedom, and optimization. This unforgiving language does not leave error, nor messy habits unpunished, which brings the developper towards cleaner, self-explanatory code. I am not one to judge uppon the difficulty scale of different languages, as each purpose has its best suiting tool. That being said, it is important to remember the crucial role and influence C has within computer sciences history and its developpment. If a developper understands and masters C, it will most likely comprehend higher level of abstraction fairly easily. There's always a developper to tell you to go lower level if you don't wanna be a neophyte. That is not an absolute truth.
Learn C though.
- Libc Functions: Some of the standard C functions.
- Additional functions: Functions that should be usefull in future projects.
- Bonus Functions: Functions for linked list manipulation.
- Personal Functions: Functions that I judge to be usefull in future projects. This section will be updated regularly.
Libc functions | Additional functions | Bonus Functions | Personal Functions | Others |
---|---|---|---|---|
isalpha | ft_substr | ft_lstnew | ft_putchar | libft.h |
isdigit | ft_strjoin | ft_lstadd_front | ft_putstr | Makefile |
isalnum | ft_strtrim | ft_lstsize | ft_itoabase | |
isascii | ft_split | ft_lstlast | ||
isprint | ft_itoa | ft_lstadd_back | ||
strlen | ft_strmapi | ft_lstdelone | ||
memset | ft_striteri | ft_lstclear | ||
bzero | ft_putchar_fd | ft_lstiter | ||
memcpy | ft_putstr_fd | ft_lstmap | ||
strlcpy | ft_putendl_fd | |||
strlcat | ft_putnbr_fd | |||
toupper | ||||
tolower | ||||
strchr | ||||
strrchr | ||||
strncmp | ||||
memchr | ||||
memcmp | ||||
strnstr | ||||
atoi | ||||
calloc | ||||
strdup |
git clone https://github.com/DscrtDv/Libft_42.git
cd Libft_42
make
This library comes with a makefile
- make: builds the whole project into an archive.
- make bonus: adds bonus file to the archive (linked list).
- make clean: deletes all object files.
- make fclean: makes clean and deletes archive file.
Printf: https://github.com/DscrtDv/Printf_42
DscrtDv