Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chkg2a/libfn

This is a project for creating a library in C, containing a collection of functions that replicate the behavior of standard library functions.
https://github.com/chkg2a/libfn

c cpp standard-library

Last synced: about 1 month ago
JSON representation

This is a project for creating a library in C, containing a collection of functions that replicate the behavior of standard library functions.

Awesome Lists containing this project

README

        

## Libfn

This is a project for creating a library in C, containing a collection of functions that replicate the behavior of standard library functions. This project is heavily inspired by [libft](https://github.com/myryk31415/libft/tree/main).

### Part 1 - Libc Functions

In this part, the behavior of standard libc functions are replicated with names prefixed by `fn_`. Functions to implement include:

- [x] `isalpha`
- [x] `isdigit`
- [x] `isalnum`
- [x] `isascii`
- [x] `isprint`
- [x] `strlen`
- [ ] `memset`
- [ ] `bzero`
- [ ] `memcpy`
- [ ] `memmove`
- [x] `strlcpy`
- [x] `strlcat`
- [x] `toupper`
- [x] `tolower`
- [ ] `strchr`
- [ ] `strrchr`
- [ ] `strncmp`
- [ ] `memchr`
- [ ] `memcmp`
- [ ] `strnstr`
- [x] `atoi`
- [ ] `calloc`
- [ ] `strdup`

### Part 2 - Additional Functions

This part involves creating additional functions that either complement the libc functions or provide new functionality. Functions to implement include:

- [ ] `fn_substr`
- [ ] `fn_strjoin`
- [ ] `fn_strtrim`
- [ ] `fn_split`
- [ ] `fn_itoa`
- [ ] `fn_strmapi`
- [ ] `fn_striteri`
- [ ] `fn_putchar_fd`
- [ ] `fn_putstr_fd`
- [ ] `fn_putendl_fd`
- [ ] `fn_putnbr_fd`

### Part 3 - Data Structures

This part involves creating standard well known data structures such as double linked list, single linked list, priority queue, queues, stack, binary search treel etc;

- [x] `fn_dll`
- [x] `fn_ll`
- [x] `fn_pqueue`
- [x] `fn_queue`
- [x] `fn_stack`
- [ ] `fn_bst`
- [ ] `fn_bt`