{"id":19111020,"url":"https://github.com/acensjj/libft","last_synced_at":"2026-06-17T12:32:05.925Z","repository":{"id":105924189,"uuid":"213586746","full_name":"AcensJJ/libft","owner":"AcensJJ","description":"Ce premier projet en tant qu'étudiant de 42 va vous faire consolider vos acquis de piscine. Vous allez recoder un certain nombre de fonctions de la librairie C standard, ainsi que d'autres fonctions utilitaires que vous réutiliserez tout au long de votre cursus.","archived":false,"fork":false,"pushed_at":"2021-06-11T23:52:30.000Z","size":1542,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-22T11:25:05.941Z","etag":null,"topics":["42","42born2code","c","libft"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AcensJJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-08T08:19:25.000Z","updated_at":"2021-10-17T10:22:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c036292-6302-4082-9b42-93bf995d445c","html_url":"https://github.com/AcensJJ/libft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AcensJJ/libft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Flibft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Flibft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Flibft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Flibft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AcensJJ","download_url":"https://codeload.github.com/AcensJJ/libft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Flibft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34449277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42","42born2code","c","libft"],"created_at":"2024-11-09T04:26:51.335Z","updated_at":"2026-06-17T12:32:05.909Z","avatar_url":"https://github.com/AcensJJ.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"42-lyon\" src=\"https://user-images.githubusercontent.com/45235527/106354618-6ec65a00-62f3-11eb-8688-ba9e0f4e77de.jpg\" /\u003e\n\u003c/p\u003e\n\n# libft\n\n\u003cimg alt=\"Note\" src=\"https://user-images.githubusercontent.com/45235527/96751780-e4a25780-13cd-11eb-9d06-aa687ff25143.png\" width=\"250\" height=\"200\" /\u003e\n  \n### \u003cstrong\u003eDescription\u003c/strong\u003e\n\nCe premier projet en tant qu'étudiant de 42 va vous faire consolider vos acquis de piscine. Vous allez \nrecoder un certain nombre de fonctions de la librairie C standard, ainsi que d'autres fonctions utilitaires \nque vous réutiliserez tout au long de votre cursus.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"make\" src=\"https://user-images.githubusercontent.com/45235527/104592712-eac36f80-566e-11eb-8713-aae03bff77c3.gif\" /\u003e\n\u003c/p\u003e\n\n# Regles\n\n```\nmake (re, clean, fclean, bonus)\n```\n\n\n# II.2 Part 1 - Fonctions de la libc\n\nVous devez recoder les fonctions suivantes. Ces fonctions ne nécessitent aucune fonction externe :\n\n- `memset`\n- `bzero`\n- `memcpy`\n- `memccpy`\n- `memmove`\n- `memchr`\n- `memcmp`\n- `strlen`\n- `isalpha`\n- `isdigit`\n- `isalnum`\n- `isascii`\n- `isprint`\n- `toupper`\n- `tolower`\n- `strchr`\n- `strrchr`\n- `strncmp`\n- `strlcpy`\n- `strlcat`\n- `strnstr`\n- `atoi`\n\n\nVous devez également recoder ces fonctions, en faisant appel à la fonction “malloc” :\n\n- `calloc`\n- `strdup`\n\n\n# II.3 Part 2 - Fonctions supplémentaires\n\nDans cette seconde partie, vous devrez coder un certain nombre de fonctions absentes\nde la libc ou présentes dans une forme différente. Certaines de ces fonctions peuvent\navoir de l’intéret pour faciliter l’écriture des fonctions de la première partie.\n\n- `ft_substr`\n- `ft_strjoin`\n- `ft_strtrim`\n- `ft_split`\n- `ft_itoa`\n- `ft_strmapi`\n- `ft_putchar_fd`\n- `ft_putstr_fd`\n- `ft_putendl_fd`\n- `ft_putnbr_fd`\n\n\n# Partie bonus\n\nSi vous avez réussi parfaitement la partie obligatoire, cette section propose quelques\npistes pour aller plus loin. Un peu comme quand vous achetez un DLC pour un jeu vidéo.\n\nAvoir des fonctions de manipulation de mémoire brute et de chaînes de caractères est\ntrès pratique, mais vous vous rendrez vite compte qu’avoir des fonctions de manipulation\nde liste est encore plus pratique.\n\nVous utiliserez la structure suivante pour représenter les maillons de votre liste. Cette\nstructure est à ajouter à votre fichier libft.h.\n\nmake bonus vous permettra d’ajouter les fonctions demandées dans votre librairie\nlibft.a\n\nVous ne devez pas rajouter _bonus à la fin des fichiers .c et des headers de cette\npartie ne rajoutez _bonus que sur des fichiers supplémentaires que vous auriez fait pour\nles bonus seulement.\n\n```\ntypedef struct s_list\n{\nvoid *content;\nstruct s_list *next;\n} t_list;\n```\n\nLa description des champs de la structure t_list est la suivante :\n- `content` : La donnée contenue dans le maillon. Le void * permet de stocker une donnée de n’importe quel type.\n- `next` : L’adresse du maillon suivant de la liste ou NULL si le maillon est le dernier\n\nLes fonctions suivantes vous permettront de manipuler vos listes aisément.\n- `ft_lstnew`\n- `ft_lstadd_front`\n- `ft_lstsize`\n- `ft_lstlast`\n- `ft_lstadd_back`\n- `ft_lstdelone`\n- `ft_lstclear`\n- `ft_lstiter`\n- `ft_lstmap`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Flibft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facensjj%2Flibft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Flibft/lists"}