GithubHelp home page GithubHelp logo

f-corvaro / libft Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 8.71 MB

"A solid foundation for system programming in C."

Home Page: https://github.com/f-corvaro

License: MIT License

Makefile 5.16% C 94.84%
libft 125 42project 42rome 42school c cprogramming makefile

libft's Introduction

"A solid foundation for system programming in C."

subject GitHub code size in bytes Code language count GitHub top language GitHub last commit

Index

Introduction
Folder Structure
Contents Overview
Building the Library
  Visual Guide to Running Tests
Evaluation Process
  Pre-Submission Testing
  Correction Sheet
  Moulinette Feedback
Acknowledgments
Developed Skills
Support and Contributions
Author


Introduction

The journey at 42 Schools begins with this foundational project. It challenges students to reimplement certain standard C library functions, along with other utility functions, and compile them into a static library. This serves as a crucial resource for future projects. Adherence to the Norminette coding standards and passing the Moulinette tests are key aspects of this project, ensuring that both peers and automated systems will evaluate your work.

Explore my complete static C library here.

This project demands a solid understanding of the C programming language, including data types, loops, conditionals, functions, and memory management. Students must also develop proficiency in debugging, testing, and documentation to ensure their code is reliable and understandable. Mastery of these skills is essential for tackling the complexities of software development and contributes significantly to the success in the Libft project and beyond.


Folder Structure

.
├── 00-libft
│   ├── libft
│   │   ├── ft_atoi.c
│   │   ├── ft_bzero.c
│   │   ├── ft_calloc.c
│   │   ├── ft_isalnum.c
│   │   ├── ft_isalpha.c
│   │   ├── ft_isascii.c
│   │   ├── ft_isdigit.c
│   │   ├── ft_isprint.c
│   │   ├── ft_itoa.c
│   │   ├── ft_lstadd_back.c
│   │   ├── ft_lstadd_front.c
│   │   ├── ft_lstclear.c
│   │   ├── ft_lstdelone.c
│   │   ├── ft_lstiter.c
│   │   ├── ft_lstlast.c
│   │   ├── ft_lstmap.c
│   │   ├── ft_lstnew.c
│   │   ├── ft_lstsize.c
│   │   ├── ft_memchr.c
│   │   ├── ft_memcmp.c
│   │   ├── ft_memcpy.c
│   │   ├── ft_memmove.c
│   │   ├── ft_memset.c
│   │   ├── ft_putchar_fd.c
│   │   ├── ft_putendl_fd.c
│   │   ├── ft_putnbr_fd.c
│   │   ├── ft_putstr_fd.c
│   │   ├── ft_split.c
│   │   ├── ft_strchr.c
│   │   ├── ft_strdup.c
│   │   ├── ft_striteri.c
│   │   ├── ft_strjoin.c
│   │   ├── ft_strlcat.c
│   │   ├── ft_strlcpy.c
│   │   ├── ft_strlen.c
│   │   ├── ft_strmapi.c
│   │   ├── ft_strncmp.c
│   │   ├── ft_strnstr.c
│   │   ├── ft_strrchr.c
│   │   ├── ft_strtrim.c
│   │   ├── ft_substr.c
│   │   ├── ft_tolower.c
│   │   ├── ft_toupper.c
│   │   ├── libft.h
│   │   └── Makefile

Contents Overview

This section is divided into four categories:

  1. Libc Functions: Standard C library functions reimplemented.
  2. Additional Functions: Useful functions for future projects.
  3. Bonus Functions: Functions specifically designed for linked list manipulation.
  4. Other Components: Includes the Makefile and libft.h header file.

Compiling the library generates object .o files and the static library file libft.a.

Libc Functions Additional Functions Bonus Functions other Components
ft_atoi.c ft_itoa.c ft_lstadd_back.c libft.h
ft_bzero.c ft_putchar_fd.c ft_lstadd_front.c makefile
ft_calloc.c ft_putendl_fd.c ft_lstclear.c
ft_isalnum.c ft_putnbr_fd.c ft_lstdelone.c
ft_isalpha.c ft_putstr_fd.c ft_lstiter.c
ft_isascii.c ft_split.c ft_lstlast.c
ft_isdigit.c ft_striteri.c ft_lstmap.c
ft_isprint.c ft_strjoin.c ft_lstnew.c
ft_memchr.c ft_strmapi.c ft_lstsize.c
ft_memcmp.c ft_strtrim.c
ft_memcpy.c ft_substr.c
ft_memmove.c
ft_memset.c
ft_strchr.c
ft_strdup.c
ft_strlcat.c
ft_strlcpy.c
ft_strlen.c
ft_strncmp.c
ft_strnstr.c
ft_strrchr.c
ft_tolower.c
ft_toupper.c


Building the Library

To compile the library, utilize the following command:

make

For a detailed list of commands available within the make utility, execute:

make info

Visual Guide to Running Tests


Evaluation Process

Pre-Submission Testing

To ensure your project is ready for submission and peer reviews, it's recommended to test it using the Supreme Tester provided by @FranFrau.

Correction Sheet

For a comprehensive review of what will be checked during evaluation, refer to the correction sheet below:

Moulinette Feedback

After submission, the Moulinette (an automated grading system) will evaluate your project. You can view the results and feedback here:


Acknowledgments

  • @dieremy: Helped with testing and resolving leaks in functions. Additionally, provided an introduction to the project, explaining various functions and theoretical aspects.
  • @MirkokriM: Inspired the idea for the GIF.


Developed Skills


Support and Contributions

If you find this repository helpful, please consider starring it to show your support. Your support is greatly appreciated!


Author

Email Github Linkedin Slack


libft's People

Contributors

f-corvaro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.