Skip to content

C Library, built at 42 Silicon Valley. "What I cannot create, I do not understand" (Richard Feynman)

License

Notifications You must be signed in to change notification settings

akharrou/42-Project-Libft

Repository files navigation

42Libft

42 Silicon Valley

Standard Norminette License

Table of Content

  1. About
  2. Norminette
  3. Functions
  4. Data Structures
  5. Usage
  6. License

About

42Libft is an open source C library with over 200+ functions.

It includes:

  • Recreated Standard C Library functions (stdio, stdlib, string, ctype, math)
  • Implementations of Data Structures (binary trees, linked lists, stacks, queues, tries, hashtables)
  • Implementation of BigInt (an infinitely big number type)
  • Implementation of Bit Manipulation Functions
  • and more !

By developing this library, I gained a very deep & thorough understanding of the C Language and its Standard Library functions but also a great understanding of data structures, algorithms, unit testing, continuous integration, troubleshooting, and proper documentation.

Norminette

All library functions follow 42 Silicon Valley's coding standard & style-guide: Norminette.


Functions

Stdio_42 Stdlib_42 String_42 Ctype_42 Math_42
ft_printf ft_atoi ft_strnew ft_isalnum ft_max
ft_dprintf ft_atoi_base ft_strclr ft_isalpha ft_min
ft_sprintf ft_itoa ft_strdel ft_isascii ft_pow
ft_asprintf ft_ftoa ft_strrev ft_isblank ft_powl
ft_vprintf ft_itoa_base ft_strmap ft_iscntrl ft_powll
ft_vdprintf ft_utoa_base ft_strmapi ft_isdigit ft_sqrt
ft_vsprintf ft_ftoa_base ft_strequ ft_isgraph ft_round
ft_vasprintf ft_dtoa_base ft_strnequ ft_islower ft_sum
ft_readfile ft_ldtoa_base ft_striter ft_isprime ft_sum_generic
ft_readline ft_convert_base ft_striteri ft_isprint
ft_malloc ft_strchr ft_ispunct
ft_putbits ft_realloc ft_strchrs ft_isspace
ft_putchar ft_bzero ft_strrchr ft_isupper
ft_putstr ft_memalloc ft_strstr ft_ischarset
ft_putstrtab ft_memccpy ft_strnstr ft_isstrset
ft_putendl ft_memchr ft_strcmp ft_tolower
ft_putnbr ft_memcmp ft_strncmp ft_toupper
ft_putnbr_base ft_memcpy ft_strcat
ft_putchar_fd ft_memdel ft_strncat
ft_putendl_fd ft_memmove ft_strlcat
ft_putnbr_fd ft_memset ft_strcpy
ft_putnbr_base_fd ft_intlen ft_strncpy
ft_putstr_fd ft_intmaxlen_base ft_strlcpy
ft_putstrtab_fd ft_uintmaxlen_base ft_strcpy_until
ft_swap_char ft_strdup
ft_swap_int ft_strndup
ft_swap_ptr ft_strsub
ft_swap_str ft_strnlen
ft_padding ft_strlen
ft_wcount ft_strsplit
ft_chrcount ft_strjoin
ft_matrix_clear ft_strappend
ft_matrix_new ft_strprepend
ft_find_next_prime ft_strnjoin
ft_strnappend
ft_strnprepend
ft_strtrim
ft_strstrip
ft_strlstrip
ft_strrstrip
ft_strnlstrip
ft_strnrstrip

...and there's even MORE !


Data Structures

Lists-Stacks-Queues Binary Trees Tries Hashtables
list_append btree_apply_infix trie_clear hashtab_clear
list_append_both btree_apply_prefix trie_count hashtab_count
list_append_tail btree_apply_suffix trie_getitem hashtab_destroy
list_clear btree_getitem trie_insert hashtab_getentry
list_count btree_insert trie_newnode hashtab_getitem
list_elem_at btree_level_count trie_remove hashtab_grow
list_extend btree_newnode hashtab_init
list_extend_tail hashtab_insert
list_extendleft hashtab_new
list_getelem hashtab_popitem
list_getitem hashtab_remove
list_insert hashtab_shrink
list_insert_at
list_item_at
list_iter
list_iteri
list_last_elem
list_last_item
list_map
list_merge
list_newelem
list_pop
list_pop_item
list_pop_item_at
list_pop_tail
list_popleft
list_prepend
list_remove_elem
list_remove_elem_at
list_remove_item
list_remove_item_at
list_reverse
list_sort

Usage

Git clone the repository :

$> git clone https://github.com/akharrou/42-Project-Libft.git Libft && cd Libft

Build the Library :

$> make

Copy/Move the Includes/ Directory & the libft.a Executable into the Root of your Project :

$> cp -R Includes libft.a <root_of_your_project>

Compile your source code with the Library binary:

$> gcc libft.a <your_file.c>

About

C Library, built at 42 Silicon Valley. "What I cannot create, I do not understand" (Richard Feynman)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published