libft
libft.h
Go to the documentation of this file.
1 /* ************************************************************************** */
3 /* */
4 /* ::: :::::::: */
5 /* libft.h :+: :+: :+: */
6 /* +:+ +:+ +:+ */
7 /* By: unite <marvin@42.fr> +#+ +:+ +#+ */
8 /* +#+#+#+#+#+ +#+ */
9 /* Created: 2019/09/05 15:17:22 by unite #+# #+# */
10 /* Updated: 2020/07/16 03:07:27 by unite ### ########.fr */
11 /* */
12 /* ************************************************************************** */
13 
14 #ifndef LIBFT_H
15 
16 # define LIBFT_H
17 
18 # include <string.h>
19 
34 typedef struct s_list
35 {
36  void *content;
37  size_t content_size;
38  struct s_list *next;
39 } t_list;
40 
41 int ft_abs(int a);
42 int ft_atoi(const char *str);
43 void ft_bzero(void *s, size_t n);
44 void *ft_calloc(size_t count, size_t size);
45 int ft_isalnum(int c);
46 int ft_isalpha(int c);
47 int ft_isascii(int c);
48 int ft_isdigit(int c);
49 int ft_isprint(int c);
50 int ft_isspace(int c);
51 char *ft_itoa(int n);
52 void ft_lstadd(t_list **alst, t_list *new);
53 void ft_lstappend(t_list **alst, t_list *new);
54 void ft_lstdel(t_list **alst, void (*del)(void *, size_t));
55 void ft_lstdelone(t_list **alst, void (*del)(void *, size_t));
56 void ft_lstiter(t_list *lst, void (*f)(t_list *elem));
57 t_list *ft_lstlast(t_list *head);
58 t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem));
59 t_list *ft_lstnew(void const *content, size_t content_size);
60 int ft_max(int a, int b);
61 void *ft_memalloc(size_t size);
62 void *ft_memccpy(void *dst, const void *src, int c, size_t n);
63 void *ft_memchr(const void *s, int c, size_t n);
64 int ft_memcmp(const void *s1, const void *s2, size_t n);
65 void *ft_memcpy(void *dst, const void *src, size_t n);
66 void ft_memdel(void **ap);
67 void *ft_memmove(void *dst, const void *src, size_t n);
68 void *ft_memset(void *b, int c, size_t len);
69 int ft_min(int a, int b);
70 int ft_power(int num, unsigned int exponent);
71 void ft_putchar(char c);
72 void ft_putchar_fd(char c, int fd);
73 void ft_putendl(char const *s);
74 void ft_putendl_fd(char const *s, int fd);
75 void ft_putnbr(int n);
76 void ft_putnbr_fd(int n, int fd);
77 void ft_putnstr(char *s, size_t n);
78 void ft_putnstr_fd(char *s, size_t n, int fd);
79 int ft_puts(char const *s);
80 void ft_putstr(char const *s);
81 void ft_putstr_fd(char const *s, int fd);
82 int ft_sqrt(int num);
83 char *ft_strcapitalize(const char *str);
84 char *ft_strcat(char *s1, const char *s2);
85 int ft_strcchr(char const *str, char c);
86 char *ft_strchr(const char *s, int c);
87 void ft_strclr(char *s);
88 int ft_strcmp(const char *s1, const char *s2);
89 char *ft_strcpy(char *dst, const char *src);
90 void ft_strdel(char **as);
91 char *ft_strdup(const char *s1);
92 int ft_strequ(const char *s1, const char *s2);
93 int ft_strintab(const char *str, char *const tab[]);
94 void ft_striter(char *s, void (*f)(char *));
95 void ft_striteri(char *s, void (*f)(unsigned int, char *));
96 char *ft_strjoin(const char *s1, const char *s2);
97 char ft_strlast(char const *str);
98 size_t ft_strlcat(char *dst, const char *src, size_t dstsize);
99 size_t ft_strlcpy(char *dst, const char *src, size_t maxlen);
100 size_t ft_strlen(const char *s);
101 char *ft_strmap(char const *s, char (*f)(char));
102 char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
103 char *ft_strncat(char *s1, const char *s2, size_t n);
104 int ft_strncmp(const char *s1, const char *s2, size_t n);
105 char *ft_strncpy(char *dst, const char *src, size_t len);
106 char *ft_strndup(const char *s1, size_t len);
107 int ft_strnequ(char const *s1, char const *s2, size_t n);
108 char *ft_strnew(size_t size);
109 char *ft_strnstr(const char *haystack, const char *needle,
110  size_t len);
111 char *ft_strrchr(const char *s, int c);
112 char *ft_strrev(const char *s);
113 char **ft_strsplit(char const *str, char delim);
114 char *ft_strstr(const char *haystack, const char *needle);
115 char *ft_strsub(char const *s, unsigned int start, size_t len);
116 char *ft_strtrim(char const *s);
117 int ft_tolower(int c);
118 int ft_toupper(int c);
119 
120 #endif
ft_isascii
int ft_isascii(int c)
Replicates behaviour of isascii from libc.
Definition: ft_isascii.c:20
ft_isalnum
int ft_isalnum(int c)
Replicates behaviour of isalnum from libc.
Definition: ft_isalnum.c:20
ft_strcpy
char * ft_strcpy(char *dst, const char *src)
Replicates behaviour of strcpy from libc.
Definition: ft_strcpy.c:20
ft_strmap
char * ft_strmap(char const *s, char(*f)(char))
Maps a function to characters of a string.
Definition: ft_strmap.c:27
ft_strlast
char ft_strlast(char const *str)
Returns the last characters (other than NULL-termination) of a string.
Definition: ft_strlast.c:22
ft_putnbr_fd
void ft_putnbr_fd(int n, int fd)
Writes an integer to a file descriptor.
Definition: ft_putnbr_fd.c:23
ft_strrev
char * ft_strrev(const char *s)
Reverses a string.
Definition: ft_strrev.c:26
ft_isspace
int ft_isspace(int c)
Replicates behaviour of isspace from libc.
Definition: ft_isspace.c:20
ft_striteri
void ft_striteri(char *s, void(*f)(unsigned int, char *))
Applies a function to characters of a string and their indices.
Definition: ft_striteri.c:25
ft_strcmp
int ft_strcmp(const char *s1, const char *s2)
Replicates strcmp from libc.
Definition: ft_strcmp.c:20
ft_min
int ft_min(int a, int b)
Returns the minimum of two integer arguments.
Definition: ft_min.c:23
ft_lstmap
t_list * ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
Definition: ft_lstmap.c:23
ft_sqrt
int ft_sqrt(int num)
Computes an integer square root of a given number, if it exists.
Definition: ft_sqrt.c:20
ft_power
int ft_power(int num, unsigned int exponent)
Raises a number to a given power.
Definition: ft_power.c:24
ft_memset
void * ft_memset(void *b, int c, size_t len)
Replicates behaviour of memset from libc.
Definition: ft_memset.c:20
ft_strchr
char * ft_strchr(const char *s, int c)
Replicates behaviour of strchr from libc.
Definition: ft_strchr.c:20
ft_strcat
char * ft_strcat(char *s1, const char *s2)
Replicates behaviour of strcat from libc.
Definition: ft_strcat.c:20
ft_strcapitalize
char * ft_strcapitalize(const char *str)
Capitalizes all words in a string.
Definition: ft_strcapitalize.c:51
ft_strrchr
char * ft_strrchr(const char *s, int c)
Replicates behaviour of strrchr from libc.
Definition: ft_strrchr.c:20
ft_putstr
void ft_putstr(char const *s)
Writes a string to the standard output.
Definition: ft_putstr.c:22
ft_strncmp
int ft_strncmp(const char *s1, const char *s2, size_t n)
Replicates behaviour of strncmp from libc.
Definition: ft_strncmp.c:20
ft_strdel
void ft_strdel(char **as)
Frees a string and sets its pointer to NULL
Definition: ft_strdel.c:24
ft_strstr
char * ft_strstr(const char *haystack, const char *needle)
Replicates behaviour of strstr from libc.
Definition: ft_strstr.c:20
ft_strncpy
char * ft_strncpy(char *dst, const char *src, size_t len)
Replicates behaviour of strncpy from libc.
Definition: ft_strncpy.c:20
ft_putstr_fd
void ft_putstr_fd(char const *s, int fd)
Writes a string to a file descriptor.
Definition: ft_putstr_fd.c:23
ft_putchar
void ft_putchar(char c)
Writes a character to the standard output.
Definition: ft_putchar.c:22
ft_strcchr
int ft_strcchr(char const *str, char c)
Counts the number of occurrences of a character in a string.
Definition: ft_strcchr.c:23
s_list::content_size
size_t content_size
The size of the data stored in bytes.
Definition: libft.h:37
ft_memmove
void * ft_memmove(void *dst, const void *src, size_t n)
Replicates behaviour of memmove from libc.
Definition: ft_memmove.c:20
ft_strmapi
char * ft_strmapi(char const *s, char(*f)(unsigned int, char))
Maps a function to characters of a string and their indices Applies the function f to each character ...
Definition: ft_strmapi.c:28
ft_lstdel
void ft_lstdel(t_list **alst, void(*del)(void *, size_t))
Deletes all links in a list.
Definition: ft_lstdel.c:29
ft_tolower
int ft_tolower(int c)
Replicates behaviour of tolower from libc.
Definition: ft_tolower.c:20
ft_putendl_fd
void ft_putendl_fd(char const *s, int fd)
Writes a string to a file descriptor followed by a newline.
Definition: ft_putendl_fd.c:22
ft_puts
int ft_puts(char const *s)
Replicates behaviour of puts from libc.
Definition: ft_puts.c:21
ft_putnstr
void ft_putnstr(char *s, size_t n)
Writes the first n characters of a to the standard output.
Definition: ft_putnstr.c:24
ft_strndup
char * ft_strndup(const char *s1, size_t len)
Makes a new string and copies up to len characters to it.
Definition: ft_strndup.c:30
ft_max
int ft_max(int a, int b)
Returns the maximum of two integer arguments.
Definition: ft_max.c:23
s_list
A link in a multi-purpose linked list.
Definition: libft.h:34
ft_strtrim
char * ft_strtrim(char const *s)
Trims whitespace from the start and end of a string.
Definition: ft_strtrim.c:34
ft_strequ
int ft_strequ(const char *s1, const char *s2)
Checks that two strings are identical.
Definition: ft_strequ.c:24
ft_memcpy
void * ft_memcpy(void *dst, const void *src, size_t n)
Replicates behaviour of memcpy from libc.
Definition: ft_memcpy.c:20
ft_memccpy
void * ft_memccpy(void *dst, const void *src, int c, size_t n)
Replicates behaviour of memcpy from libc.
Definition: ft_memccpy.c:20
ft_lstnew
t_list * ft_lstnew(void const *content, size_t content_size)
Allocates a new list.
Definition: ft_lstnew.c:31
ft_strnew
char * ft_strnew(size_t size)
Allocates a fresh string.
Definition: ft_strnew.c:25
s_list::content
void * content
The data contained in the link.
Definition: libft.h:36
ft_lstadd
void ft_lstadd(t_list **alst, t_list *new)
Adds an element at the beginning of a list.
Definition: ft_lstadd.c:22
ft_toupper
int ft_toupper(int c)
Replicates behaviour of toupper from libc.
Definition: ft_toupper.c:20
ft_calloc
void * ft_calloc(size_t count, size_t size)
Replicates behaviour of calloc from libc.
Definition: ft_calloc.c:21
ft_putendl
void ft_putendl(char const *s)
Writes a string to the standard output followed by a newline.
Definition: ft_putendl.c:21
ft_strintab
int ft_strintab(const char *str, char *const tab[])
Checks if a string is in a tab.
Definition: ft_strintab.c:26
ft_lstappend
void ft_lstappend(t_list **alst, t_list *new)
Adds the element new at the end of the list.
Definition: ft_lstappend.c:22
ft_strclr
void ft_strclr(char *s)
Sets each character of a string to 0.
Definition: ft_strclr.c:21
ft_strnstr
char * ft_strnstr(const char *haystack, const char *needle, size_t len)
Replicates behaviour of strnstr from libc.
Definition: ft_strnstr.c:20
ft_putchar_fd
void ft_putchar_fd(char c, int fd)
Writes a character to a file descriptor.
Definition: ft_putchar_fd.c:23
s_list::next
struct s_list * next
The next link’s address or NULL if it’s the last link.
Definition: libft.h:38
ft_putnbr
void ft_putnbr(int n)
Writes an integer to the standard output.
Definition: ft_putnbr.c:21
ft_strlcpy
size_t ft_strlcpy(char *dst, const char *src, size_t maxlen)
Replicates behaviour of strlcpy from libc.
Definition: ft_strlcpy.c:20
ft_lstlast
t_list * ft_lstlast(t_list *head)
Returns the last element of a list.
Definition: ft_lstlast.c:22
ft_atoi
int ft_atoi(const char *str)
Replicates behaviour of atoi from libc.
Definition: ft_atoi.c:21
ft_isprint
int ft_isprint(int c)
Replicates behaviour of isprint from libc.
Definition: ft_isprint.c:20
ft_memcmp
int ft_memcmp(const void *s1, const void *s2, size_t n)
Replicates behaviour of memcmp from libc.
Definition: ft_memcmp.c:20
ft_memdel
void ft_memdel(void **ap)
Frees memory where a pointer points to and sets the pointer to NULL.
Definition: ft_memdel.c:22
ft_itoa
char * ft_itoa(int n)
Replicates behaviour of itoa from libc
Definition: ft_itoa.c:32
ft_strsub
char * ft_strsub(char const *s, unsigned int start, size_t len)
Copies a substring from a string.
Definition: ft_strsub.c:28
ft_putnstr_fd
void ft_putnstr_fd(char *s, size_t n, int fd)
Writes the first n characters of a string to a file descriptor.
Definition: ft_putnstr_fd.c:25
ft_strlen
size_t ft_strlen(const char *s)
Replicates behaviour of strlen from libc.
Definition: ft_strlen.c:20
ft_strncat
char * ft_strncat(char *s1, const char *s2, size_t n)
Replicates behaviour of strncat from libc.
Definition: ft_strncat.c:20
ft_abs
int ft_abs(int a)
Returns the absolute value of the argument.
Definition: ft_abs.c:21
ft_striter
void ft_striter(char *s, void(*f)(char *))
Applies a function to characters of a string.
Definition: ft_striter.c:25
ft_isdigit
int ft_isdigit(int c)
Replicates behaviour of isdigit from libc.
Definition: ft_isdigit.c:20
ft_strsplit
char ** ft_strsplit(char const *str, char delim)
Splits a string on whitespace characters.
Definition: ft_strsplit.c:70
ft_memchr
void * ft_memchr(const void *s, int c, size_t n)
Replicates behaviour of memchr from libc.
Definition: ft_memchr.c:20
ft_bzero
void ft_bzero(void *s, size_t n)
Replicates behaviour of bzero from libc.
Definition: ft_bzero.c:20
ft_strnequ
int ft_strnequ(char const *s1, char const *s2, size_t n)
Checks that two strings are unequal.
Definition: ft_strnequ.c:26
ft_strdup
char * ft_strdup(const char *s1)
Replicates behaviour of strdup from libc.
Definition: ft_strdup.c:20
ft_lstiter
void ft_lstiter(t_list *lst, void(*f)(t_list *elem))
Applies a function to each member of a list.
Definition: ft_lstiter.c:22
ft_strjoin
char * ft_strjoin(const char *s1, const char *s2)
Joins two strings.
Definition: ft_strjoin.c:26
ft_strlcat
size_t ft_strlcat(char *dst, const char *src, size_t dstsize)
Replicates behaviour of strlcat from libc.
Definition: ft_strlcat.c:20
ft_isalpha
int ft_isalpha(int c)
Replicates behaviour of isalpha from libc.
Definition: ft_isalpha.c:20
ft_memalloc
void * ft_memalloc(size_t size)
Allocates memory of a given size and initializes it to 0.
Definition: ft_memalloc.c:24
ft_lstdelone
void ft_lstdelone(t_list **alst, void(*del)(void *, size_t))
Deletes one link of a list.
Definition: ft_lstdelone.c:29