aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--c01/ex05/ft_putstr.c9
-rw-r--r--c02/ex11/ft_putstr_non_printable.c2
-rw-r--r--c04/ex04/ft_putnbr_base.c7
-rw-r--r--c04/ft_atoi.obin1300 -> 0 bytes
-rw-r--r--c04/ft_putnbr.obin1212 -> 0 bytes
-rw-r--r--c04/ft_putnbr_base.obin1756 -> 0 bytes
-rw-r--r--c04/ft_putstr.obin708 -> 0 bytes
-rw-r--r--c04/ft_strlen.obin652 -> 0 bytes
-rw-r--r--c05/ex00/ft_iterative_factorial.c4
-rw-r--r--c05/ex01/ft_recursive_factorial.c6
-rw-r--r--c05/ex02/ft_iterative_power.c4
-rw-r--r--c05/ex03/ft_recursive_power.c6
-rw-r--r--c05/ex04/ft_fibonacci.c6
-rw-r--r--c05/ex05/ft_sqrt.c4
-rw-r--r--c05/ex06/ft_is_prime.c4
-rw-r--r--c05/ex07/ft_find_next_prime.c8
-rw-r--r--c06/ex03/ft_sort_params.c8
-rw-r--r--c07/ex00/ft_strdup.c45
-rw-r--r--c07/ex01/ft_range.c28
-rw-r--r--c07/ex02/ft_ultimate_range.c34
-rw-r--r--c07/ex03/ft_strjoin.c72
-rw-r--r--c07/main.c61
-rw-r--r--c08/ex00/ft.h22
-rw-r--r--c08/ex01/ft_boolean.h34
-rw-r--r--c08/ex02/ft_abs.h18
-rw-r--r--c08/ex03/ft_point.h21
-rw-r--r--c08/ex04/ft_strs_to_tab.c13
28 files changed, 379 insertions, 38 deletions
diff --git a/.gitignore b/.gitignore
index cba7efc..d7756c2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
a.out
+*.o
diff --git a/c01/ex05/ft_putstr.c b/c01/ex05/ft_putstr.c
index 55d0d43..f0b5578 100644
--- a/c01/ex05/ft_putstr.c
+++ b/c01/ex05/ft_putstr.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 17:57:28 by cacharle #+# #+# */
-/* Updated: 2019/07/04 06:29:50 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 16:59:04 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,9 +14,6 @@
void ft_putstr(char *str)
{
- while (*str != '\0')
- {
- write(1, str, 1);
- str++;
- }
+ while (*str)
+ write(1, str++, 1);
}
diff --git a/c02/ex11/ft_putstr_non_printable.c b/c02/ex11/ft_putstr_non_printable.c
index d436d9e..6c521de 100644
--- a/c02/ex11/ft_putstr_non_printable.c
+++ b/c02/ex11/ft_putstr_non_printable.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/04 16:46:03 by cacharle #+# #+# */
-/* Updated: 2019/07/05 07:44:04 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 16:51:03 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
diff --git a/c04/ex04/ft_putnbr_base.c b/c04/ex04/ft_putnbr_base.c
index da6fb22..bd1dca0 100644
--- a/c04/ex04/ft_putnbr_base.c
+++ b/c04/ex04/ft_putnbr_base.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 07:47:44 by cacharle #+# #+# */
-/* Updated: 2019/07/07 12:30:16 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 18:13:58 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -69,9 +69,6 @@ void ft_putnbr_base(int nbr, char *base)
nbu /= radix;
i++;
}
- while (i > 0)
- {
- i--;
+ while (i-- > 0)
write(1, rev_digits + i, 1);
- }
}
diff --git a/c04/ft_atoi.o b/c04/ft_atoi.o
deleted file mode 100644
index 8c7622b..0000000
--- a/c04/ft_atoi.o
+++ /dev/null
Binary files differ
diff --git a/c04/ft_putnbr.o b/c04/ft_putnbr.o
deleted file mode 100644
index 4d8c488..0000000
--- a/c04/ft_putnbr.o
+++ /dev/null
Binary files differ
diff --git a/c04/ft_putnbr_base.o b/c04/ft_putnbr_base.o
deleted file mode 100644
index db3788f..0000000
--- a/c04/ft_putnbr_base.o
+++ /dev/null
Binary files differ
diff --git a/c04/ft_putstr.o b/c04/ft_putstr.o
deleted file mode 100644
index 099c1e4..0000000
--- a/c04/ft_putstr.o
+++ /dev/null
Binary files differ
diff --git a/c04/ft_strlen.o b/c04/ft_strlen.o
deleted file mode 100644
index 33f0ca0..0000000
--- a/c04/ft_strlen.o
+++ /dev/null
Binary files differ
diff --git a/c05/ex00/ft_iterative_factorial.c b/c05/ex00/ft_iterative_factorial.c
index fa64f59..3773b9d 100644
--- a/c05/ex00/ft_iterative_factorial.c
+++ b/c05/ex00/ft_iterative_factorial.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 16:48:21 by cacharle #+# #+# */
-/* Updated: 2019/07/06 17:14:26 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:06:59 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_iterative_factorial(int nb)
+int ft_iterative_factorial(int nb)
{
int acc;
int i;
diff --git a/c05/ex01/ft_recursive_factorial.c b/c05/ex01/ft_recursive_factorial.c
index 615cd04..288e61f 100644
--- a/c05/ex01/ft_recursive_factorial.c
+++ b/c05/ex01/ft_recursive_factorial.c
@@ -6,15 +6,15 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 17:15:10 by cacharle #+# #+# */
-/* Updated: 2019/07/06 17:18:58 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:07:48 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_recursive_factorial(int nb)
+int ft_recursive_factorial(int nb)
{
if (nb < 0)
return (0);
if (nb == 0 || nb == 1)
return (1);
- return nb * ft_recursive_factorial(nb - 1);
+ return (nb * ft_recursive_factorial(nb - 1));
}
diff --git a/c05/ex02/ft_iterative_power.c b/c05/ex02/ft_iterative_power.c
index ccfd359..af26b08 100644
--- a/c05/ex02/ft_iterative_power.c
+++ b/c05/ex02/ft_iterative_power.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 17:20:15 by cacharle #+# #+# */
-/* Updated: 2019/07/06 17:39:06 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:06:24 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_iterative_power(int nb, int power)
+int ft_iterative_power(int nb, int power)
{
int acc;
diff --git a/c05/ex03/ft_recursive_power.c b/c05/ex03/ft_recursive_power.c
index 94c4fbd..8339768 100644
--- a/c05/ex03/ft_recursive_power.c
+++ b/c05/ex03/ft_recursive_power.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 17:39:43 by cacharle #+# #+# */
-/* Updated: 2019/07/06 19:32:17 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:07:33 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_recursive_power(int nb, int power)
+int ft_recursive_power(int nb, int power)
{
if (power < 0)
return (0);
@@ -18,5 +18,5 @@ int ft_recursive_power(int nb, int power)
return (1);
if (power == 1)
return (nb);
- return nb * ft_recursive_power(nb, power - 1);
+ return (nb * ft_recursive_power(nb, power - 1));
}
diff --git a/c05/ex04/ft_fibonacci.c b/c05/ex04/ft_fibonacci.c
index 66ff9b1..92da477 100644
--- a/c05/ex04/ft_fibonacci.c
+++ b/c05/ex04/ft_fibonacci.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 19:34:02 by cacharle #+# #+# */
-/* Updated: 2019/07/06 19:37:37 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:08:19 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_fibonacci(int index)
+int ft_fibonacci(int index)
{
if (index < 0)
return (-1);
@@ -18,5 +18,5 @@ int ft_fibonacci(int index)
return (0);
if (index == 1 || index == 2)
return (1);
- return ft_fibonacci(index - 1) + ft_fibonacci(index - 2);
+ return (ft_fibonacci(index - 1) + ft_fibonacci(index - 2));
}
diff --git a/c05/ex05/ft_sqrt.c b/c05/ex05/ft_sqrt.c
index 8a86489..a72af2d 100644
--- a/c05/ex05/ft_sqrt.c
+++ b/c05/ex05/ft_sqrt.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 20:06:48 by cacharle #+# #+# */
-/* Updated: 2019/07/06 20:11:19 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:08:36 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_sqrt(int nb)
+int ft_sqrt(int nb)
{
int i;
diff --git a/c05/ex06/ft_is_prime.c b/c05/ex06/ft_is_prime.c
index 05628a2..dc06fa5 100644
--- a/c05/ex06/ft_is_prime.c
+++ b/c05/ex06/ft_is_prime.c
@@ -6,11 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 20:17:59 by cacharle #+# #+# */
-/* Updated: 2019/07/07 08:27:21 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:08:46 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_is_prime(int nb)
+int ft_is_prime(int nb)
{
int i;
diff --git a/c05/ex07/ft_find_next_prime.c b/c05/ex07/ft_find_next_prime.c
index a83f308..e17ca94 100644
--- a/c05/ex07/ft_find_next_prime.c
+++ b/c05/ex07/ft_find_next_prime.c
@@ -6,12 +6,11 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 07:50:11 by cacharle #+# #+# */
-/* Updated: 2019/07/07 08:29:02 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:09:16 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-
-int is_prime(int nb)
+int is_prime(int nb)
{
int i;
@@ -31,10 +30,9 @@ int is_prime(int nb)
return (1);
}
-int ft_find_next_prime(int nb)
+int ft_find_next_prime(int nb)
{
while (!is_prime(nb))
nb++;
return (nb);
}
-
diff --git a/c06/ex03/ft_sort_params.c b/c06/ex03/ft_sort_params.c
index 01f64db..3b5f57d 100644
--- a/c06/ex03/ft_sort_params.c
+++ b/c06/ex03/ft_sort_params.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 15:12:51 by cacharle #+# #+# */
-/* Updated: 2019/07/07 15:27:49 by cacharle ### ########.fr */
+/* Updated: 2019/07/08 12:10:53 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -38,8 +38,8 @@ int is_sorted(char **argv, int argc)
void sort_argv(char **argv, int argc)
{
- int i;
- char *tmp;
+ int i;
+ char *tmp;
while (!is_sorted(argv, argc))
{
@@ -59,9 +59,9 @@ void sort_argv(char **argv, int argc)
int main(int argc, char **argv)
{
- sort_argv(argv, argc);
int i;
+ sort_argv(argv, argc);
i = 1;
while (i < argc)
{
diff --git a/c07/ex00/ft_strdup.c b/c07/ex00/ft_strdup.c
new file mode 100644
index 0000000..c63bd27
--- /dev/null
+++ b/c07/ex00/ft_strdup.c
@@ -0,0 +1,45 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strdup.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 15:39:50 by cacharle #+# #+# */
+/* Updated: 2019/07/08 07:49:52 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <stdlib.h>
+#include <errno.h>
+
+int ft_strlen(char *str)
+{
+ int counter;
+
+ counter = 0;
+ while (str[counter])
+ counter++;
+ return (counter);
+}
+
+char *ft_strdup(char *src)
+{
+ int i;
+ char *dup_ptr;
+
+ dup_ptr = malloc(sizeof(char) * ft_strlen(src));
+ if (dup_ptr == NULL)
+ {
+ errno = ENOMEM;
+ return (NULL);
+ }
+ i = 0;
+ while (src[i])
+ {
+ dup_ptr[i] = src[i];
+ i++;
+ }
+ dup_ptr[i] = '\0';
+ return (dup_ptr);
+}
diff --git a/c07/ex01/ft_range.c b/c07/ex01/ft_range.c
new file mode 100644
index 0000000..be171f3
--- /dev/null
+++ b/c07/ex01/ft_range.c
@@ -0,0 +1,28 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_range.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 16:03:47 by cacharle #+# #+# */
+/* Updated: 2019/07/08 08:03:28 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int *ft_range(int min, int max)
+{
+ int i;
+ int *range;
+
+ if (min >= max)
+ return (NULL);
+ range = malloc(sizeof(int) * (max - min));
+ i = 0;
+ while (i < max - min)
+ {
+ range[i] = min + i;
+ i++;
+ }
+ return (range);
+}
diff --git a/c07/ex02/ft_ultimate_range.c b/c07/ex02/ft_ultimate_range.c
new file mode 100644
index 0000000..141889c
--- /dev/null
+++ b/c07/ex02/ft_ultimate_range.c
@@ -0,0 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_ultimate_range.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 16:09:06 by cacharle #+# #+# */
+/* Updated: 2019/07/08 08:38:29 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <stdlib.h>
+
+int ft_ultimate_range(int **range, int min, int max)
+{
+ int i;
+
+ if (min >= max)
+ {
+ *range = NULL;
+ return (0);
+ }
+ *range = (int*)malloc(sizeof(int) * (max - min));
+ if (*range == NULL)
+ return (-1);
+ i = 0;
+ while (i < max - min)
+ {
+ (*range)[i] = min + i;
+ i++;
+ }
+ return (i);
+}
diff --git a/c07/ex03/ft_strjoin.c b/c07/ex03/ft_strjoin.c
new file mode 100644
index 0000000..1264000
--- /dev/null
+++ b/c07/ex03/ft_strjoin.c
@@ -0,0 +1,72 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strjoin.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 16:14:25 by cacharle #+# #+# */
+/* Updated: 2019/07/08 11:08:00 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <stdlib.h>
+
+int my_strlen(char *str)
+{
+ int i;
+
+ i = 0;
+ while(str[i])
+ i++;
+ return (i);
+}
+
+int cummulative_strlen(int size, char **strs)
+{
+ int i;
+ int len;
+
+ len = 0;
+ i = 0;
+ while (size > 0)
+ {
+ i = 0;
+ while (strs[size - 1][i])
+ {
+ i++;
+ len++;
+ }
+ size--;
+ }
+ return (len);
+}
+
+char *ft_strjoin(int size, char **strs, char *sep)
+{
+ int i;
+ int j;
+ int k;
+ int l;
+ char *join;
+
+ join = (char*)malloc(sizeof(char) * (cummulative_strlen(size, strs)
+ + my_strlen(sep) * (size - 1)));
+ j = 0;
+ l = 0;
+ while (l < size)
+ {
+ i = 0;
+ while (strs[l][i])
+ {
+ join[j] = strs[l][i];
+ i++;
+ j++;
+ }
+ k = 0;
+ while (l != size - 1 && sep[k])
+ join[j++] = sep[k++];
+ l++;
+ }
+ return (join);
+}
diff --git a/c07/main.c b/c07/main.c
new file mode 100644
index 0000000..e967143
--- /dev/null
+++ b/c07/main.c
@@ -0,0 +1,61 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* main.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/08 08:19:02 by cacharle #+# #+# */
+/* Updated: 2019/07/08 11:00:55 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "ex00/ft_strdup.c"
+#include "ex01/ft_range.c"
+#include "ex02/ft_ultimate_range.c"
+#include "ex03/ft_strjoin.c"
+/*#include "ex04/ft_strdup.c"*/
+/*#include "ex05/ft_strdup.c"*/
+
+int main()
+{
+ char *s = "bonjour";
+ char *mydup = ft_strdup(s);
+ char *stdup = strdup(s);
+
+ printf("%s\n", mydup);
+ printf("%s\n", stdup);
+ free(mydup);
+ free(stdup);
+
+ printf("---------------\n");
+ int *r = ft_range(-3, 5);
+ if (r)
+ for (int i = 0; i < 10; i++)
+ printf("%d ", r[i]);
+ printf("\n ");
+ free(r);
+
+ printf("---------------\n");
+ int *rult;
+ int len = ft_ultimate_range(&rult, -4, 15);
+ printf("len(%d): ", len);
+ for (int i = 0; i < len; i++)
+ printf("%d ", rult[i]);
+ printf("\n ");
+
+ printf("---------------\n");
+ char *strs[] = {"bonjour", "je", "suis", "charle"};
+ char *sep = ", ";
+ int size = 4;
+ char *join;
+ /*printf("%d\n", cummulative_strlen(size, strs));*/
+ join = ft_strjoin(size, strs, sep);
+ printf("%s\n", join);
+ free(join);
+
+ return 0;
+}
diff --git a/c08/ex00/ft.h b/c08/ex00/ft.h
new file mode 100644
index 0000000..5dbbb51
--- /dev/null
+++ b/c08/ex00/ft.h
@@ -0,0 +1,22 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 16:33:44 by cacharle #+# #+# */
+/* Updated: 2019/07/07 16:34:58 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef FT_H
+#define FT_H
+
+void ft_putchar(char c);
+void ft_swap(int *a, int *b);
+void ft_putstr(char *str);
+int ft_strlen(char *str);
+int ft_strcmp(char *s1, char *s2);
+
+#endif
diff --git a/c08/ex01/ft_boolean.h b/c08/ex01/ft_boolean.h
new file mode 100644
index 0000000..43a3c4f
--- /dev/null
+++ b/c08/ex01/ft_boolean.h
@@ -0,0 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_boolean.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 16:35:29 by cacharle #+# #+# */
+/* Updated: 2019/07/07 17:07:47 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef FT_BOOLEAN_H
+#define FT_BOOLEAN_H
+
+#include <unistd.h>
+
+#define TRUE 1
+#define FALSE 1
+#define SUCCESS 0
+#define EVEN_MSG "I have an even number of arguments.\n"
+#define ODD_MSG "I have an odd number of arguments.\n"
+#define EVEN(x) (x % 2 == 0 ? 1 : 0)
+
+typedef enum {
+ FALSE,
+ TRUE
+} t_bool;
+
+void ft_putstr(char *str);
+t_bool ft_is_even(int nbr);
+
+
+#endif
diff --git a/c08/ex02/ft_abs.h b/c08/ex02/ft_abs.h
new file mode 100644
index 0000000..9a41241
--- /dev/null
+++ b/c08/ex02/ft_abs.h
@@ -0,0 +1,18 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_abs.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 17:09:37 by cacharle #+# #+# */
+/* Updated: 2019/07/07 17:11:50 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef FT_ABS_H
+#define FT_ABS_H
+
+#define ABS(x) (x < 0 ? -x : x)
+
+#endif
diff --git a/c08/ex03/ft_point.h b/c08/ex03/ft_point.h
new file mode 100644
index 0000000..088b792
--- /dev/null
+++ b/c08/ex03/ft_point.h
@@ -0,0 +1,21 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_point.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 17:12:47 by cacharle #+# #+# */
+/* Updated: 2019/07/07 17:15:20 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef FT_POINT_H
+#define FT_POINT_H
+
+typedef struct {
+ int x;
+ int y;
+} t_point;
+
+#endif
diff --git a/c08/ex04/ft_strs_to_tab.c b/c08/ex04/ft_strs_to_tab.c
new file mode 100644
index 0000000..bc4c42f
--- /dev/null
+++ b/c08/ex04/ft_strs_to_tab.c
@@ -0,0 +1,13 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strs_to_tab.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/07 17:15:32 by cacharle #+# #+# */
+/* Updated: 2019/07/07 17:16:52 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+