85 lines
2.4 KiB
C
85 lines
2.4 KiB
C
#ifndef LIBFT_H
|
|
# define LIBFT_H
|
|
|
|
# include <stdlib.h>
|
|
|
|
void *ft_realloc(void *ptr, size_t old_size, size_t new_size);
|
|
|
|
/* String functions */
|
|
size_t ft_strlen(const char *s);
|
|
char *ft_strdup(const char *s);
|
|
int ft_strcmp(const char *s1, const char *s2);
|
|
|
|
/* Character checks and conversions */
|
|
int ft_isalpha(int c);
|
|
int ft_isdigit(int c);
|
|
int ft_islower(int c);
|
|
int ft_isupper(int c);
|
|
int ft_tolower(int c);
|
|
int ft_toupper(int c);
|
|
|
|
/* Memory functions */
|
|
void ft_bzero(void *s, size_t n);
|
|
void *ft_memset(void *s, int c, size_t n);
|
|
void *ft_memset32(void *s, int c, size_t n);
|
|
void *ft_memset64(void *s, int c, size_t n);
|
|
void *ft_memcpy(void *dst, const void *src, size_t n);
|
|
void *ft_memcpy32(void *dst, const void *src, size_t n);
|
|
void *ft_memcpy64(void *dst, const void *src, size_t n);
|
|
int ft_memcmp(const void *s1, const void *s2, size_t n);
|
|
void *ft_memmove(void *dst, const void *src, size_t n);
|
|
void *ft_memchr(const void *s, int c, size_t n);
|
|
/* Conversion */
|
|
int ft_atoi(const char *str);
|
|
|
|
/* Output functions */
|
|
int ft_putchar(char c);
|
|
int ft_putstr(const char *s);
|
|
int ft_putnbr(int n);
|
|
int ft_putunbr(unsigned int n);
|
|
int ft_puthex(unsigned int n, int uppercase);
|
|
int ft_putaddr(unsigned long n);
|
|
int ft_putptr(void *ptr);
|
|
int ft_printf(const char *format, ...);
|
|
|
|
/* String */
|
|
typedef struct s_string
|
|
{
|
|
size_t len;
|
|
char *data;
|
|
} t_string;
|
|
|
|
/* Single Linked List */
|
|
typedef struct s_slist
|
|
{
|
|
void *data;
|
|
struct s_slist *next;
|
|
} t_slist;
|
|
|
|
t_slist *ft_slist_new(void *data);
|
|
void ft_slist_push(t_slist **lst, t_slist *node);
|
|
void ft_slist_unshift(t_slist **lst, t_slist *node);
|
|
t_slist *ft_slist_pop(t_slist **lst);
|
|
t_slist *ft_slist_shift(t_slist **lst);
|
|
int ft_slist_size(t_slist *lst);
|
|
void ft_slist_clear(t_slist **lst);
|
|
void ft_slist_reverse(t_slist **lst);
|
|
int ft_slist_empty(t_slist *lst);
|
|
void ft_slist_iter(t_slist *lst, void (*f)(void *));
|
|
void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *));
|
|
t_slist *ft_slist_find(t_slist *lst, void *data, int (*cmp)(void *, void *));
|
|
int ft_slist_insert(t_slist **lst, t_slist *node, int index);
|
|
t_slist *ft_slist_get(t_slist *lst, int index);
|
|
|
|
/* Vector */
|
|
typedef struct s_vec
|
|
{
|
|
void *data;
|
|
size_t size;
|
|
size_t capacity;
|
|
size_t element_size;
|
|
} t_vec;
|
|
|
|
/* Vector functions*/
|
|
t_vec *ft_vecnew(size_t element_size);
|
|
#endif
|