-
Notifications
You must be signed in to change notification settings - Fork 0
/
libft.h
139 lines (133 loc) · 4.63 KB
/
libft.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* libft.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rgaia <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/09/18 10:56:18 by rgaia #+# #+# */
/* Updated: 2019/04/23 23:43:22 by rgaia ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef __LIBFT_H
# define __LIBFT_H
# include <unistd.h>
# include <stdlib.h>
# include <string.h>
# include "get_next_line.h"
# define FALSE 0
# define TRUE 1
# define IS_SPACE(x) (x == ' ' || x == '\t' || x == '\r' || x == '\f')
typedef struct s_list
{
void *content;
size_t content_size;
struct s_list *next;
} t_list;
/*
** LIBC Functions
*/
/*
** Util
*/
int ft_atoi(const char *str);
int ft_abs(int c);
int ft_isalpha(int c);
int ft_islower(int c);
int ft_isupper(int c);
int ft_isdigit(int c);
int ft_isprint(int c);
int ft_tolower(int c);
int ft_toupper(int c);
int ft_isalnum(int c);
int ft_isascii(int c);
int ft_iswhitespace(int c);
int ft_numdigit(int c);
int ft_isdelim(int c);
int ft_isblank(int c);
/*
** String
*/
size_t ft_strlen(const char *s);
size_t ft_strnlen(const char *s, char c);
char *ft_strcpy(char *dst, const char *src);
char *ft_strdup(const char *s1);
char *ft_strdup_ff(char *s1);
char *ft_strndup(const char *s1, size_t len);
char *ft_strncpy(char *dst, const char *src, size_t len);
char *ft_strcat(char *s1, const char *s2);
char *ft_strncat(char *s1, const char *s2, size_t n);
size_t ft_strlcat(char *dst, const char *src, size_t size);
char *ft_strchr(const char *s, int c);
char *ft_strrchr(const char *s, int c);
char *ft_strstr(const char *big, const char *little);
char *ft_strnstr(const char *big, const char *little,
size_t len);
int ft_strcmp(const char *s1, const char *s2);
int ft_strncmp(const char *s1, const char *s2, size_t n);
int ft_strblank(const char *s);
/*
** Memory
*/
void *ft_memset(void *b, int c, size_t len);
void ft_bzero(void *s, size_t n);
void *ft_memcpy(void *dst, const void *src, size_t n);
void *ft_memccpy(void *dst, const void *src, int c, size_t n);
void *ft_memmove(void *dst, const void *src, size_t len);
void *ft_memchr(const void *s, int c, size_t n);
int ft_memcmp(const void *s1, const void *s2, size_t n);
/*
** FT_Functions
*/
char *ft_chrsub(char *str, char out, char in);
/*
** FT_UTIL:
*/
char *ft_itoa(int n);
char *ft_itoa_base_unsigned(uintmax_t n, int base);
void ft_putchar(char c);
void ft_putstr(char const *s);
void ft_puterror(char *str, int error);
void ft_putendl(char const *s);
void ft_putnbr(int n);
void ft_putchar_fd(char c, int fd);
void ft_putstr_fd(char const *s, int fd);
void ft_putendl_fd(char const *s, int fd);
void ft_putnbr_fd(int n, int fd);
/*
** FT_STR:
*/
char *ft_strnew(size_t size);
void ft_strdel(char **as);
void ft_strclr(char *s);
void ft_striter(char *s, void (*f)(char *));
void ft_striteri(char *s, void(*f)(unsigned int, char *));
char *ft_strmap(const char *s, char (*f)(char));
char *ft_strmapi(const char *s, char (*f)(unsigned int, char));
int ft_strequ(char const *s1, char const *s2);
int ft_strnequ(char const *s1, char const *s2, size_t n);
char *ft_strsub(char const *s, unsigned int start, size_t len);
char *ft_strjoin(char const *s1, char const *s2);
char *ft_strjoin_ff(char *s1, char const *s2);
char *ft_strtrim(char const *s);
char **ft_strsplit(char const *s, char c);
int ft_strnword(const char *s, char c);
/*
** FT_MEM:
*/
void *ft_memalloc(size_t size);
void ft_memdel(void **ap);
/*
** Data Structures
*/
/*
** Linked Lists
*/
t_list *ft_lstnew(void const *content, size_t content_size);
void ft_lstadd(t_list **alst, t_list *new);
void ft_lstadd_back(t_list **alst, t_list *new);
void ft_lstdelone(t_list **alst, void (*del)(void*, size_t));
void ft_lstdel(t_list **alst, void (*del)(void*, size_t));
void ft_lstiter(t_list *lst, void (*f)(t_list *elem));
t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem));
#endif