aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--ft_atoi.c24
-rw-r--r--ft_bzero.c9
-rw-r--r--ft_calloc.c24
-rw-r--r--ft_memmove.c16
-rw-r--r--ft_putendl.c4
-rw-r--r--ft_putendl_fd.c4
-rw-r--r--ft_putstr_fd.c4
-rw-r--r--ft_split.c (renamed from ft_strsplit.c)4
-rw-r--r--ft_strlcpy.c30
-rw-r--r--ft_strmapi.c4
-rw-r--r--ft_strnstr.c22
-rw-r--r--ft_strtrim.c18
-rw-r--r--ft_substr.c (renamed from ft_strsub.c)4
-rw-r--r--libft.h25
15 files changed, 126 insertions, 72 deletions
diff --git a/Makefile b/Makefile
index 9013acc..f4f9f13 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ SRC = ft_atoi.c ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isascii.c ft_isdigit.c f
ft_strclr.c ft_strcmp.c ft_strcpy.c ft_strdel.c ft_strdup.c ft_strequ.c ft_striter.c \
ft_striteri.c ft_strjoin.c ft_strlcat.c ft_strlen.c ft_strmap.c ft_strmapi.c \
ft_strncat.c ft_strncmp.c ft_strncpy.c ft_strnequ.c ft_strnew.c ft_strnstr.c \
- ft_strrchr.c ft_strsplit.c ft_strstr.c ft_strsub.c ft_strtrim.c ft_tolower.c \
- ft_toupper.c
+ ft_strrchr.c ft_split.c ft_strstr.c ft_substr.c ft_strtrim.c ft_tolower.c \
+ ft_toupper.c ft_strlcpy.c ft_calloc.c
OBJ = $(SRC:.c=.o)
all: $(NAME)
@@ -19,7 +19,7 @@ $(NAME): $(OBJ) libft.h
ar rc $(NAME) $(OBJ)
%.o: %.c
- $(CC) $(CCFLAGS) -fPIC -c -o $@ $< # /!\ fPIC
+ $(CC) $(CCFLAGS) -c -o $@ $<
clean:
rm -f $(OBJ)
diff --git a/ft_atoi.c b/ft_atoi.c
index ba929d8..5fbbf47 100644
--- a/ft_atoi.c
+++ b/ft_atoi.c
@@ -6,47 +6,47 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */
-/* Updated: 2019/10/07 11:34:37 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 14:04:17 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#define MIN_INT (1 << 31)
#define MAX_INT (~(1 << 31))
-static int precheck(const char **nptr)
+static int precheck(const char **str)
{
int is_negative;
- while (**nptr == ' ' || **nptr == '\t' || **nptr == '\n'
- || **nptr == '\v' || **nptr == '\f' || **nptr == '\r')
- (*nptr)++;
+ while (**str == ' ' || **str == '\t' || **str == '\n'
+ || **str == '\v' || **str == '\f' || **str == '\r')
+ (*str)++;
is_negative = 0;
- if (**nptr == '-' || **nptr == '+')
+ if (**str == '-' || **str == '+')
{
- if (**nptr == '-')
+ if (**str == '-')
is_negative = 1;
- (*nptr)++;
+ (*str)++;
}
return (is_negative);
}
-int ft_atoi(const char *nptr)
+int ft_atoi(const char *str)
{
unsigned int nb;
int i;
int is_negative;
- is_negative = precheck(&nptr);
+ is_negative = precheck(&str);
i = 0;
nb = 0;
- while (nptr[i] >= '0' && nptr[i] <= '9')
+ while (str[i] >= '0' && str[i] <= '9')
{
if (!is_negative && nb > (unsigned int)MAX_INT)
return (-1);
else if (nb > (unsigned int)MIN_INT)
return (0);
nb *= 10;
- nb += nptr[i] - '0';
+ nb += str[i] - '0';
i++;
}
return ((int)(is_negative ? -nb : nb));
diff --git a/ft_bzero.c b/ft_bzero.c
index 712bb31..6a4e3cc 100644
--- a/ft_bzero.c
+++ b/ft_bzero.c
@@ -6,17 +6,14 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 09:50:10 by cacharle #+# #+# */
-/* Updated: 2019/10/07 09:50:22 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 12:08:09 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <string.h>
+#include "libft.h"
void ft_bzero(void *s, size_t n)
{
- char *s_char_ptr;
-
- s_char_ptr = (char*)s;
- while (n-- > 0)
- s_char_ptr[n] = 0;
+ ft_memset(s, 0, n);
}
diff --git a/ft_calloc.c b/ft_calloc.c
new file mode 100644
index 0000000..a6d88a0
--- /dev/null
+++ b/ft_calloc.c
@@ -0,0 +1,24 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_calloc.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 12:45:37 by cacharle #+# #+# */
+/* Updated: 2019/10/07 12:47:58 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <stdlib.h>
+#include "libft.h"
+
+void *ft_calloc(size_t count, size_t size)
+{
+ void *mem;
+
+ if ((mem = malloc(count * size)) == NULL)
+ return (NULL);
+ ft_bzero(mem, count * size);
+ return (mem);
+}
diff --git a/ft_memmove.c b/ft_memmove.c
index 282ea52..185fd36 100644
--- a/ft_memmove.c
+++ b/ft_memmove.c
@@ -6,29 +6,29 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */
-/* Updated: 2019/10/07 11:17:29 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 12:20:25 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include <string.h>
-#define BUF_SIZE 4096
+#define BUF_SIZE (2 << 12)
-void *ft_memmove(void *dest, const void *src, size_t n)
+void *ft_memmove(void *dst, const void *src, size_t len)
{
size_t i;
size_t j;
size_t k;
unsigned char tmp[BUF_SIZE];
- if (dest == NULL && src == NULL)
+ if (dst == NULL && src == NULL)
return (NULL);
i = 0;
- while (i < n)
+ while (i < len)
{
j = 0;
- while (j < BUF_SIZE && i < n)
+ while (j < BUF_SIZE && i < len)
{
tmp[j] = ((unsigned char*)src)[i];
j++;
@@ -36,8 +36,8 @@ void *ft_memmove(void *dest, const void *src, size_t n)
}
k = -1;
while (++k < j)
- ((unsigned char*)dest)[k] = tmp[k];
+ ((unsigned char*)dst)[k] = tmp[k];
i++;
}
- return (dest);
+ return (dst);
}
diff --git a/ft_putendl.c b/ft_putendl.c
index 5bd86e5..fb40829 100644
--- a/ft_putendl.c
+++ b/ft_putendl.c
@@ -6,14 +6,14 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:42:54 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:43:01 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 13:24:18 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
#include "libft.h"
-void ft_putendl(char const *s)
+void ft_putendl(char *s)
{
ft_putstr(s);
ft_putchar('\n');
diff --git a/ft_putendl_fd.c b/ft_putendl_fd.c
index c1ed236..d9f6d7d 100644
--- a/ft_putendl_fd.c
+++ b/ft_putendl_fd.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:44:06 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:44:14 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 13:32:37 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
-void ft_putendl_fd(char const *s, int fd)
+void ft_putendl_fd(char *s, int fd)
{
ft_putstr_fd(s, fd);
ft_putchar_fd('\n', fd);
diff --git a/ft_putstr_fd.c b/ft_putstr_fd.c
index 7053650..22028b7 100644
--- a/ft_putstr_fd.c
+++ b/ft_putstr_fd.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:40:15 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:40:22 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 13:26:14 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
-void ft_putstr_fd(char const *s, int fd)
+void ft_putstr_fd(char *s, int fd)
{
while (*s)
write(fd, s++, 1);
diff --git a/ft_strsplit.c b/ft_split.c
index 3b80bfb..e3b312c 100644
--- a/ft_strsplit.c
+++ b/ft_split.c
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:22:09 by cacharle #+# #+# */
-/* Updated: 2019/10/07 11:11:15 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 14:30:10 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -48,7 +48,7 @@ static char *ft_strndup(const char *s1, size_t n)
return (clone);
}
-char **ft_strsplit(char const *s, char c)
+char **ft_split(char const *s, char c)
{
char **strs;
size_t size;
diff --git a/ft_strlcpy.c b/ft_strlcpy.c
new file mode 100644
index 0000000..3f287a3
--- /dev/null
+++ b/ft_strlcpy.c
@@ -0,0 +1,30 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strlcpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 12:28:47 by cacharle #+# #+# */
+/* Updated: 2019/10/07 12:33:40 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <string.h>
+#include "libft.h"
+
+size_t ft_strlcpy(char *dst, const char *src, size_t size)
+{
+ unsigned int i;
+
+ if (size == 0)
+ return (ft_strlen(src));
+ i = 0;
+ while (i < size - 1 && src[i] != '\0')
+ {
+ dst[i] = src[i];
+ i++;
+ }
+ dst[i] = '\0';
+ return (ft_strlen(src));
+}
diff --git a/ft_strmapi.c b/ft_strmapi.c
index a03395e..2ded74e 100644
--- a/ft_strmapi.c
+++ b/ft_strmapi.c
@@ -6,14 +6,14 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:29:32 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:31:12 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 13:22:15 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "libft.h"
-char *ft_strmapi(char const *s, char (*f)(unsigned int, char))
+char *ft_strmapi(char *s, char (*f)(unsigned int, char))
{
size_t i;
size_t len;
diff --git a/ft_strnstr.c b/ft_strnstr.c
index 5f4bb91..d65a6f6 100644
--- a/ft_strnstr.c
+++ b/ft_strnstr.c
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:25:13 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:26:11 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 12:40:59 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,27 +14,27 @@
#include <string.h>
#include "libft.h"
-char *ft_strnstr(const char *big, const char *little, size_t len)
+char *ft_strnstr(const char *haystack, const char *needle, size_t len)
{
size_t i;
size_t j;
- size_t little_len;
+ size_t needle_len;
- little_len = ft_strlen(little);
- if (little_len == 0 || len == 0)
- return ((char*)big);
+ needle_len = ft_strlen(needle);
+ if (needle_len == 0 || len == 0)
+ return ((char*)haystack);
i = 0;
- while (i < len && big[i])
+ while (i < len && haystack[i])
{
j = 0;
- while (i + j < len && little[j] && big[i + j])
+ while (i + j < len && needle[j] && haystack[i + j])
{
- if (little[j] != big[i + j])
+ if (needle[j] != haystack[i + j])
break ;
j++;
}
- if (j == little_len)
- return ((char*)big + i);
+ if (j == needle_len)
+ return ((char*)haystack + i);
i++;
}
return (NULL);
diff --git a/ft_strtrim.c b/ft_strtrim.c
index 9d6e7d7..4ff2cfe 100644
--- a/ft_strtrim.c
+++ b/ft_strtrim.c
@@ -6,34 +6,30 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:24:16 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:25:02 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 14:04:31 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "libft.h"
-static int is_space(char c)
-{
- return (c == ' ' || c == '\n' || c == '\t');
-}
-
-char *ft_strtrim(char const *s)
+char *ft_strtrim(char const *s1, char const *set)
{
size_t start;
size_t len;
char *trimed;
start = 0;
- while (s[start] && is_space(s[start]))
+ while (s1[start] && ft_strchr(set, s1[start]) != NULL)
start++;
- len = ft_strlen(&s[start]);
+ len = ft_strlen(&s1[start]);
if (len != 0)
- while (s[start + len - 1] && is_space(s[start + len - 1]))
+ while (s1[start + len - 1]
+ && ft_strchr(set, s1[start + len - 1]) != NULL)
len--;
if ((trimed = (char*)malloc(sizeof(char) * (len + 1))) == NULL)
return (NULL);
- trimed = ft_strncpy(trimed, &s[start], len);
+ trimed = ft_strncpy(trimed, &s1[start], len);
trimed[len] = '\0';
return (trimed);
}
diff --git a/ft_strsub.c b/ft_substr.c
index 6f11657..7f7d3c4 100644
--- a/ft_strsub.c
+++ b/ft_substr.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 10:16:26 by cacharle #+# #+# */
-/* Updated: 2019/10/07 10:17:24 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 12:52:43 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
-char *ft_strsub(char const *s, unsigned int start, size_t len)
+char *ft_substr(char const *s, unsigned int start, size_t len)
{
unsigned int i;
char *sub;
diff --git a/libft.h b/libft.h
index 99a4b65..e5d102c 100644
--- a/libft.h
+++ b/libft.h
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 09:45:02 by cacharle #+# #+# */
-/* Updated: 2019/10/07 09:45:04 by cacharle ### ########.fr */
+/* Updated: 2019/10/07 14:30:19 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -15,11 +15,14 @@
# include <string.h>
+# define TRUE 1
+# define FALSE 0
+
void *ft_memset(void *s, int c, size_t n);
void ft_bzero(void *s, size_t n);
void *ft_memcpy(void *dest, const void *src, size_t n);
void *ft_memccpy(void *dest, const void *src, int c, size_t n);
-void *ft_memmove(void *dest, const void *src, 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);
size_t ft_strlen(const char *s);
@@ -29,10 +32,11 @@ char *ft_strncpy(char *dest, const char *src, size_t n);
char *ft_strcat(char *dest, const char *src);
char *ft_strncat(char *dest, const char *src, size_t n);
size_t ft_strlcat(char *dst, const char *src, size_t size);
+size_t ft_strlcpy(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 *haystack, const char *needle);
-char *ft_strnstr(const char *big, const char *little, size_t len);
+char *ft_strnstr(const char *haystack, const char *needle, 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_atoi(const char *nptr);
@@ -42,6 +46,7 @@ int ft_isalnum(int c);
int ft_isascii(int c);
int ft_isprint(int c);
int ft_toupper(int c);
+void *ft_calloc(size_t count, size_t size);
void *ft_memalloc(size_t size);
void ft_memdel(void **ap);
char *ft_strnew(size_t size);
@@ -50,19 +55,21 @@ 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(char const *s, char (*f)(char));
-char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
+char *ft_strmapi(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_substr(char const *s, unsigned int start, size_t len);
char *ft_strjoin(char const *s1, char const *s2);
-char *ft_strtrim(char const *s);
-char **ft_strsplit(char const *s, char c);
+char *ft_strtrim(char const *s1, char const *set);
+char **ft_split(char const *s, char c);
char *ft_itoa(int n);
+void ft_putendl(char *s);
void ft_putchar(char c);
void ft_putstr(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_putstr_fd(char *s, int fd);
+void ft_putendl_fd(char *s, int fd);
+void ft_putnbr_fd(int n, int fd);
#endif