aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ft_atoi.c62
-rw-r--r--ft_bzero.c22
-rw-r--r--ft_isalnum.c16
-rw-r--r--ft_isalpha.c16
-rw-r--r--ft_isascii.c16
-rw-r--r--ft_isdigit.c16
-rw-r--r--ft_isprint.c16
-rw-r--r--ft_itoa.c17
-rw-r--r--ft_memalloc.c26
-rw-r--r--ft_memccpy.c46
-rw-r--r--ft_memchr.c36
-rw-r--r--ft_memcmp.c40
-rw-r--r--ft_memcpy.c34
-rw-r--r--ft_memdel.c18
-rw-r--r--ft_memmove.c65
-rw-r--r--ft_memset.c16
-rw-r--r--ft_putchar.c18
-rw-r--r--ft_putchar_fd.c16
-rw-r--r--ft_putendl.c18
-rw-r--r--ft_putendl_fd.c18
-rw-r--r--ft_putnbr.c16
-rw-r--r--ft_putnbr_fd.c16
-rw-r--r--ft_putstr.c18
-rw-r--r--ft_putstr_fd.c18
-rw-r--r--ft_strcat.c40
-rw-r--r--ft_strchr.c36
-rw-r--r--ft_strclr.c18
-rw-r--r--ft_strcmp.c24
-rw-r--r--ft_strcpy.c32
-rw-r--r--ft_strdel.c16
-rw-r--r--ft_strdup.c43
-rw-r--r--ft_strequ.c16
-rw-r--r--ft_striter.c18
-rw-r--r--ft_striteri.c28
-rw-r--r--ft_strjoin.c26
-rw-r--r--ft_strlcat.c14
-rw-r--r--ft_strlen.c24
-rw-r--r--ft_strmap.c42
-rw-r--r--ft_strmapi.c42
-rw-r--r--ft_strncat.c40
-rw-r--r--ft_strncmp.c16
-rw-r--r--ft_strncpy.c34
-rw-r--r--ft_strnequ.c16
-rw-r--r--ft_strnew.c28
-rw-r--r--ft_strnstr.c26
-rw-r--r--ft_strrchr.c32
-rw-r--r--ft_strsplit.c113
-rw-r--r--ft_strstr.c20
-rw-r--r--ft_strsub.c38
-rw-r--r--ft_strtrim.c48
-rw-r--r--ft_tolower.c26
-rw-r--r--ft_toupper.c26
-rw-r--r--libft.h110
53 files changed, 1111 insertions, 481 deletions
diff --git a/ft_atoi.c b/ft_atoi.c
index 94c42cc..ba929d8 100644
--- a/ft_atoi.c
+++ b/ft_atoi.c
@@ -1,33 +1,53 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_atoi.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */
+/* Updated: 2019/10/07 11:34:37 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#define MIN_INT (1 << 31)
#define MAX_INT (~(1 << 31))
-int ft_atoi(const char *nptr)
+static int precheck(const char **nptr)
{
- unsigned int nb;
- int i;
- int is_negative;
+ int is_negative;
- while (*nptr == ' ' || *nptr == '\t'|| *nptr == '\n'
- || *nptr == '\v'|| *nptr == '\f'|| *nptr == '\r')
- nptr++;
- is_negative = 0;
- if (*nptr == '-' || *nptr == '+')
+ while (**nptr == ' ' || **nptr == '\t' || **nptr == '\n'
+ || **nptr == '\v' || **nptr == '\f' || **nptr == '\r')
+ (*nptr)++;
+ is_negative = 0;
+ if (**nptr == '-' || **nptr == '+')
{
- if (*nptr == '-')
- is_negative = 1;
- nptr++;
+ if (**nptr == '-')
+ is_negative = 1;
+ (*nptr)++;
}
- i = 0;
- nb = 0;
+ return (is_negative);
+}
+
+int ft_atoi(const char *nptr)
+{
+ unsigned int nb;
+ int i;
+ int is_negative;
+
+ is_negative = precheck(&nptr);
+ i = 0;
+ nb = 0;
while (nptr[i] >= '0' && nptr[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';
- i++;
+ 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';
+ i++;
}
return ((int)(is_negative ? -nb : nb));
}
diff --git a/ft_bzero.c b/ft_bzero.c
index e936cf1..712bb31 100644
--- a/ft_bzero.c
+++ b/ft_bzero.c
@@ -1,10 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_bzero.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:50:10 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:50:22 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <string.h>
-void ft_bzero(void *s, size_t n)
+void ft_bzero(void *s, size_t n)
{
- char *s_char_ptr;
+ char *s_char_ptr;
- s_char_ptr = (char*)s;
- while (n-- > 0)
- s_char_ptr[n] = 0;
+ s_char_ptr = (char*)s;
+ while (n-- > 0)
+ s_char_ptr[n] = 0;
}
diff --git a/ft_isalnum.c b/ft_isalnum.c
index d98da91..1ee1e0f 100644
--- a/ft_isalnum.c
+++ b/ft_isalnum.c
@@ -1,6 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_isalnum.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:41:40 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:41:56 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include "libft.h"
-int ft_isalnum(int c)
+int ft_isalnum(int c)
{
- return (ft_isalpha(c) || ft_isdigit(c));
+ return (ft_isalpha(c) || ft_isdigit(c));
}
diff --git a/ft_isalpha.c b/ft_isalpha.c
index cd09abb..070ff6a 100644
--- a/ft_isalpha.c
+++ b/ft_isalpha.c
@@ -1,4 +1,16 @@
-int ft_isalpha(int c)
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_isalpha.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:54:52 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:54:57 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int ft_isalpha(int c)
{
- return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
+ return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
}
diff --git a/ft_isascii.c b/ft_isascii.c
index 7742ded..5bb79cb 100644
--- a/ft_isascii.c
+++ b/ft_isascii.c
@@ -1,6 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_isascii.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:54:30 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:54:37 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#define MAX_CHAR ((1 << 7) - 1)
-int ft_isascii(int c)
+int ft_isascii(int c)
{
- return (c >= 0 && c <= MAX_CHAR);
+ return (c >= 0 && c <= MAX_CHAR);
}
diff --git a/ft_isdigit.c b/ft_isdigit.c
index a41e1fd..f8a5850 100644
--- a/ft_isdigit.c
+++ b/ft_isdigit.c
@@ -1,4 +1,16 @@
-int ft_isdigit(int c)
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_isdigit.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:41:20 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:41:25 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int ft_isdigit(int c)
{
- return (c >= '0' && c <= '9');
+ return (c >= '0' && c <= '9');
}
diff --git a/ft_isprint.c b/ft_isprint.c
index 6834120..397271d 100644
--- a/ft_isprint.c
+++ b/ft_isprint.c
@@ -1,4 +1,16 @@
-int ft_isprint(int c)
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_isprint.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:52:09 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:52:10 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int ft_isprint(int c)
{
- return (c >= ' ' && c <= '~');
+ return (c >= ' ' && c <= '~');
}
diff --git a/ft_itoa.c b/ft_itoa.c
index 3dc4396..426937e 100644
--- a/ft_itoa.c
+++ b/ft_itoa.c
@@ -1,7 +1,18 @@
-#include <stdlib.h>
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_itoa.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:19:56 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:21:23 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+#include <stdlib.h>
-static int count_len(int nbr)
+static int count_len(int nbr)
{
int counter;
unsigned int u_nbr;
@@ -23,7 +34,7 @@ static int count_len(int nbr)
return (counter);
}
-char *ft_itoa(int n)
+char *ft_itoa(int n)
{
char *str;
int len;
diff --git a/ft_memalloc.c b/ft_memalloc.c
index 3c81f10..c485bfd 100644
--- a/ft_memalloc.c
+++ b/ft_memalloc.c
@@ -1,13 +1,25 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memalloc.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:07:14 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:07:47 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <stdlib.h>
#include <string.h>
-void *ft_memalloc(size_t size)
+void *ft_memalloc(size_t size)
{
- void *ptr;
+ void *ptr;
- if ((ptr = malloc(size)) == NULL)
- return (NULL);
- while (size-- > 0)
- ((unsigned char*)ptr)[size] = 0;
- return (ptr);
+ if ((ptr = malloc(size)) == NULL)
+ return (NULL);
+ while (size-- > 0)
+ ((unsigned char*)ptr)[size] = 0;
+ return (ptr);
}
diff --git a/ft_memccpy.c b/ft_memccpy.c
index 9cc483a..20104ab 100644
--- a/ft_memccpy.c
+++ b/ft_memccpy.c
@@ -1,22 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memccpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:01:53 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:03:07 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <string.h>
-void *ft_memccpy(void *dest, const void *src, int c, size_t n)
+void *ft_memccpy(void *dest, const void *src, int c, size_t n)
{
- size_t i;
- unsigned char *uc_dest;
- unsigned char *uc_src;
+ size_t i;
+ unsigned char *uc_dest;
+ unsigned char *uc_src;
- uc_dest = (unsigned char*)dest;
- uc_src = (unsigned char*)src;
- i = 0;
- while (i < n)
- {
- uc_dest[i] = uc_src[i];
- if (uc_dest[i] == (unsigned char)c)
- break ;
- i++;
- }
- if (i == n)
- return (NULL);
- return (dest + i + 1);
+ uc_dest = (unsigned char*)dest;
+ uc_src = (unsigned char*)src;
+ i = 0;
+ while (i < n)
+ {
+ uc_dest[i] = uc_src[i];
+ if (uc_dest[i] == (unsigned char)c)
+ break ;
+ i++;
+ }
+ if (i == n)
+ return (NULL);
+ return (dest + i + 1);
}
diff --git a/ft_memchr.c b/ft_memchr.c
index 662a6c7..26b196f 100644
--- a/ft_memchr.c
+++ b/ft_memchr.c
@@ -1,17 +1,29 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memchr.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:55:31 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:56:35 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <string.h>
-void *ft_memchr(const void *s, int c, size_t n)
+void *ft_memchr(const void *s, int c, size_t n)
{
- size_t i;
- unsigned char *uc_s;
+ size_t i;
+ unsigned char *uc_s;
- uc_s = (unsigned char*)s;
- i = 0;
- while (i < n)
- {
- if (uc_s[i] == (unsigned char)c)
- return (uc_s + i);
- i++;
- }
- return (NULL);
+ uc_s = (unsigned char*)s;
+ i = 0;
+ while (i < n)
+ {
+ if (uc_s[i] == (unsigned char)c)
+ return (uc_s + i);
+ i++;
+ }
+ return (NULL);
}
diff --git a/ft_memcmp.c b/ft_memcmp.c
index 76cd47d..32a2cc4 100644
--- a/ft_memcmp.c
+++ b/ft_memcmp.c
@@ -1,19 +1,31 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memcmp.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:56:44 by cacharle #+# #+# */
+/* Updated: 2019/10/07 09:59:58 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <string.h>
-int ft_memcmp(const void *s1, const void *s2, size_t n)
+int ft_memcmp(const void *s1, const void *s2, size_t n)
{
- size_t i;
- unsigned char *uc_s1;
- unsigned char *uc_s2;
+ size_t i;
+ unsigned char *uc_s1;
+ unsigned char *uc_s2;
- uc_s1 = (unsigned char*)s1;
- uc_s2 = (unsigned char*)s2;
- i = 0;
- if (n == 0)
- return (0);
- while (i < n && uc_s1[i] == uc_s2[i])
- i++;
- if (i == n)
- i--;
- return (uc_s1[i] - uc_s2[i]);
+ uc_s1 = (unsigned char*)s1;
+ uc_s2 = (unsigned char*)s2;
+ i = 0;
+ if (n == 0)
+ return (0);
+ while (i < n && uc_s1[i] == uc_s2[i])
+ i++;
+ if (i == n)
+ i--;
+ return (uc_s1[i] - uc_s2[i]);
}
diff --git a/ft_memcpy.c b/ft_memcpy.c
index 1ac2708..da243f2 100644
--- a/ft_memcpy.c
+++ b/ft_memcpy.c
@@ -1,16 +1,28 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memcpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:00:07 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:00:46 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <string.h>
-void *ft_memcpy(void *dest, const void *src, size_t n)
+void *ft_memcpy(void *dest, const void *src, size_t n)
{
- size_t i;
+ size_t i;
- if (dest == NULL && src == NULL)
- return (NULL);
- i = 0;
- while (i < n)
- {
- *((char*)dest + i) = *((char*)src + i);
- i++;
- }
- return (dest);
+ if (dest == NULL && src == NULL)
+ return (NULL);
+ i = 0;
+ while (i < n)
+ {
+ *((char*)dest + i) = *((char*)src + i);
+ i++;
+ }
+ return (dest);
}
diff --git a/ft_memdel.c b/ft_memdel.c
index 6d4cd6f..206e5af 100644
--- a/ft_memdel.c
+++ b/ft_memdel.c
@@ -1,7 +1,19 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memdel.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:00:56 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:01:06 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <stdlib.h>
-void ft_memdel(void **ap)
+void ft_memdel(void **ap)
{
- free(*ap);
- *ap = NULL;
+ free(*ap);
+ *ap = NULL;
}
diff --git a/ft_memmove.c b/ft_memmove.c
index 54555cb..282ea52 100644
--- a/ft_memmove.c
+++ b/ft_memmove.c
@@ -1,38 +1,43 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memmove.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */
+/* Updated: 2019/10/07 11:17:29 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#include <stdlib.h>
#include <string.h>
#define BUF_SIZE 4096
-void *ft_memmove(void *dest, const void *src, size_t n)
+void *ft_memmove(void *dest, const void *src, size_t n)
{
- size_t i;
- size_t j;
- size_t k;
- unsigned char tmp[BUF_SIZE];
- unsigned char *uc_dest;
- unsigned char *uc_src;
+ size_t i;
+ size_t j;
+ size_t k;
+ unsigned char tmp[BUF_SIZE];
- if (dest == NULL && src == NULL)
- return (NULL);
- uc_dest = (unsigned char*) dest;
- uc_src = (unsigned char*) src;
- i = 0;
- while (i < n)
- {
- j = 0;
- while (j < BUF_SIZE && i < n)
- {
- tmp[j] = uc_src[i];
- j++;
- i++;
- }
- k = 0;
- while (k < j)
- {
- uc_dest[k] = tmp[k];
- k++;
- }
- i++;
- }
- return (dest);
+ if (dest == NULL && src == NULL)
+ return (NULL);
+ i = 0;
+ while (i < n)
+ {
+ j = 0;
+ while (j < BUF_SIZE && i < n)
+ {
+ tmp[j] = ((unsigned char*)src)[i];
+ j++;
+ i++;
+ }
+ k = -1;
+ while (++k < j)
+ ((unsigned char*)dest)[k] = tmp[k];
+ i++;
+ }
+ return (dest);
}
diff --git a/ft_memset.c b/ft_memset.c
index e09db6c..9e3a541 100644
--- a/ft_memset.c
+++ b/ft_memset.c
@@ -1,8 +1,20 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_memset.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 10:01:23 by cacharle #+# #+# */
+/* Updated: 2019/10/07 10:01:38 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+