Libft is a comprehensive C library that I developed as a student project. It includes a set of standard libc functions and additional utility functions. The project aims to provide a robust foundation for future C programming endeavors by ensuring a deep understanding of these essential functions and facilitating their reuse.
The repository is organized with the following structure:
Makefile
: Automation script for compilation and project management.inc/libft.h
: Header file containing function prototypes and necessary definitions.src/ft_*.c
: Source files implementing various functions.
The library includes meticulously crafted versions of standard libc functions such as toupper
, tolower
, strchr
, strncmp
, and more. Each function has the same prototype and behavior as its libc counterpart.
In addition to standard libc functions, the library offers extra utility functions like ft_substr
, ft_strjoin
, ft_strtrim
, ft_split
, ft_itoa
, and more. These functions enhance the versatility of the library for various programming tasks.
For a more advanced touch, the library includes functions for working with linked lists. This bonus section adds functionality like creating a new list element (ft_lstnew
), adding elements to the front (ft_lstadd_front
), finding the size of the list (ft_lstsize
), and more.
The project is considered complete as it adheres to the following guidelines:
- All functions have been implemented according to specifications.
- Code follows the
42 School
Norm for C programming. - Memory management is efficient, avoiding memory leaks.
- A Makefile automates the compilation process.
Throughout the development of Libft, I have gained proficiency in the following areas:
- C Programming: Enhanced skills in writing efficient and well-structured C code.
- Algorithmic Thinking: Developed algorithms for various functions, ensuring optimal performance.
- Memory Management: Mastered dynamic memory allocation and deallocation.
- Makefile Usage: Created a Makefile for project compilation and management.
- Git Version Control: Managed project versions and collaborated through Git repositories.