Skip to content

semx2a/Libft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Libft - Your Own C Library

Summary

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.

Project Structure

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.

Features

Part 1 - Functions from the libc

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.

Part 2 - Additional Functions

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.

Bonus Part - Linked List Operations

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.

Project Completion

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.

Acquired Skills

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.

Releases

No releases published

Packages