{"id":18550401,"url":"https://github.com/amaitou/ft_printf","last_synced_at":"2026-02-25T10:33:27.919Z","repository":{"id":112338357,"uuid":"552376146","full_name":"amaitou/ft_printf","owner":"amaitou","description":"Recreating the essence of the printf function, this project offers a faithful reproduction of its behavior in the C programming language. Delve into the intricacies of string formatting, variable arguments, and the core mechanisms that make printf a versatile tool. ","archived":false,"fork":false,"pushed_at":"2024-04-19T16:32:02.000Z","size":28,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-24T02:01:46.017Z","etag":null,"topics":["1337school","42cursus","42network","printf-42","variadic-functions"],"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/amaitou.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,"zenodo":null}},"created_at":"2022-10-16T13:05:32.000Z","updated_at":"2024-02-01T03:28:40.000Z","dependencies_parsed_at":"2025-04-24T02:01:03.790Z","dependency_job_id":null,"html_url":"https://github.com/amaitou/ft_printf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amaitou/ft_printf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaitou%2Fft_printf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaitou%2Fft_printf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaitou%2Fft_printf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaitou%2Fft_printf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amaitou","download_url":"https://codeload.github.com/amaitou/ft_printf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaitou%2Fft_printf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265560985,"owners_count":23788287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["1337school","42cursus","42network","printf-42","variadic-functions"],"created_at":"2024-11-06T21:04:37.941Z","updated_at":"2026-02-25T10:33:27.848Z","avatar_url":"https://github.com/amaitou.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n---\n![Quotation-Aristotle-Be-a-free-thinker-and-don-t-accept-everything-you-139-75-05](https://user-images.githubusercontent.com/49293816/210186768-6aa77841-e766-4296-b995-7124b7861d36.jpeg)\n\n---\n# Ft_printf\n\nThis is the second project of the **`42Cursus`**. \u003cbr /\u003e\nThe goal of this project is pretty straightforward. recoding `printf()` (not the whole function).\n\n**``` Note: I haven't shared the PDF of this project, as well as, I haven't explained anything due to school privacy reasons!```**\n\nThis project consists of two parts:\n- **Mandatory part**\n- **Bonus Part**\n\n\u003e Note: The **Bonus Part** is not that necessary to validate the project, but it gives some extra XPs and days for the **` The Blackhole`**.\n\n---\n\n# Project Structure\n\n```\n|____.gitignore\n|____includes\n| |____ft_printf.h\n|____Makefile\n|____README.md\n|____sources\n| |____ft_printf.c\n| |____ft_printhex.c\n| |____ft_putchar.c\n| |____ft_putsigned.c\n| |____ft_putstr.c\n| |____ft_putunsigned.c\n```\n\n---\n\n# Mandatory Part\n\nTo implement your own `printf()` you need to go over each one of these string formats:\n\n  - `%c` Prints a single character.\n  - `%s` Prints a string (as defined by the common C convention).\n  - `%p` The void * pointer argument has to be printed in hexadecimal format.\n  - `%d` Prints a decimal (base 10) number.\n  - `%i` Prints an integer in base 10.\n  - `%u` Prints an unsigned decimal (base 10) number.\n  - `%x` Prints a number in hexadecimal (base 16) lowercase format.\n  - `%X` Prints a number in hexadecimal (base 16) uppercase format.\n  •-`%%` Prints a percent sign.\n---\n\n# What are variadic functions\n\nTo have this project done you must learn a new `C Concept` which is **`Variadic Functions`**.\n\nin `C Programming Language` function takes a known number of params to deal with, but what if we want to pass an unknown number of params and let the function handle all of them? it's cool right :)?\n\n_with `Variadic Functions` this problem would be fixed._\n\nHere is how to declare a `Variadic Function` that takes a variable number of params:\n\n```c\nvoid variadic_function(char *s, ...)\n```\n\nlet's break this example down so we can see what this weird function does.\n\nfirst of all, this function returns nothing, the first parameter is a string but the second one `...` is something to declare to the function that we are about to accept a variable number of params.\n\nlearn more about `Variadic Functions` via [`Variadic Functions in c`](https://www.geeksforgeeks.org/variadic-functions-in-c/#:~:text=Variadic%20functions%20are%20functions%20that,of%20arguments%20can%20be%20passed.)\n\n---\n\n# Things you will learn in this project\n\n\u003e Variadic Functions\n\n\u003e Number System Conversion\n\n\u003e Implementation of your own `printf()` function\n\n\u003e Makefile\n\n\u003e How to use `printf()` properly\n\n\u003e Pointers\n\n---\n## Contact Me\n\n* [Twitter][_1]\n\n[_1]: https://twitter.com/amait0u\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famaitou%2Fft_printf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famaitou%2Fft_printf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famaitou%2Fft_printf/lists"}