aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--c04/ex03/ft_atoi.c2
-rw-r--r--c04/main.c3
-rw-r--r--c05/ex06/ft_is_prime.c4
-rw-r--r--c05/main.c6
-rw-r--r--c07/ex03/ft_strjoin.c37
-rw-r--r--c07/ex04/ft_convert_base.c130
-rw-r--r--c07/ex04/ft_convert_base2.c69
-rw-r--r--c07/ex05/ft_split.c46
-rw-r--r--c07/main.c56
-rw-r--r--c08/boolean_main.c34
-rw-r--r--c08/ex00/ft.h4
-rw-r--r--c08/ex01/ft_boolean.h29
-rw-r--r--c08/ex02/ft_abs.h6
-rw-r--r--c08/ex03/ft_point.h6
-rw-r--r--c08/ex04/ft_stock_str.h8
-rw-r--r--c08/ex04/ft_strs_to_tab.c59
-rw-r--r--c08/ex05/ft_show_tab.c57
-rw-r--r--c08/ex05/ft_stock_str.h23
-rw-r--r--c08/main.c51
-rw-r--r--c08/point_main.c27
-rw-r--r--c09/ex00/ft_putchar.c18
-rw-r--r--c09/ex00/ft_putstr.c19
-rw-r--r--c09/ex00/ft_strcmp.c21
-rw-r--r--c09/ex00/ft_strlen.c22
-rw-r--r--c09/ex00/ft_swap.c20
-rw-r--r--c09/ex00/libft_creator.sh3
-rw-r--r--c09/ex01/Makefile28
-rw-r--r--c10/ex00/Makefile0
-rw-r--r--c10/ex00/bonjour4
-rw-r--r--c10/ex00/main.c63
-rw-r--r--rush01/ex00/helper.c69
-rw-r--r--rush01/ex00/include.h48
-rw-r--r--rush01/ex00/main.c39
-rw-r--r--rush01/ex00/solve.c138
-rw-r--r--rush01/ex00/square.c133
-rw-r--r--rush01_6x6_try/ex00/board.c77
-rw-r--r--rush01_6x6_try/ex00/helper.c46
-rw-r--r--rush01_6x6_try/ex00/include.h50
-rw-r--r--rush01_6x6_try/ex00/main.c56
-rw-r--r--rush01_6x6_try/ex00/solve.c146
-rw-r--r--rush01_6x6_try/ex00/square.c134
41 files changed, 1591 insertions, 200 deletions
diff --git a/c04/ex03/ft_atoi.c b/c04/ex03/ft_atoi.c
index a26308e..39dfbb1 100644
--- a/c04/ex03/ft_atoi.c
+++ b/c04/ex03/ft_atoi.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 07:31:38 by cacharle #+# #+# */
-/* Updated: 2019/07/06 15:48:43 by cacharle ### ########.fr */
+/* Updated: 2019/07/11 07:29:42 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
diff --git a/c04/main.c b/c04/main.c
index d4324a8..65d10fb 100644
--- a/c04/main.c
+++ b/c04/main.c
@@ -36,6 +36,7 @@ int main()
char *garbage_tail = "76iqu21#!@";
char *all = "\n\t \v++++---12341234#3%^@";
char *subject_test = " ---+--+1234ab567";
+ char *nothing = " --+qwer";
printf("%d\n", ft_atoi(s_happypath));
printf("%d\n", ft_atoi(s_happypathn));
printf("%d\n", ft_atoi(s_int0));
@@ -47,6 +48,7 @@ int main()
printf("%d\n", ft_atoi(garbage_tail));
printf("%d\n", ft_atoi(all));
printf("%d\n", ft_atoi(subject_test));
+ printf("%d\n", ft_atoi(nothing));
printf("----------------------\n");
ft_putnbr_base(42, "0123456789"); printf("\n");
@@ -57,6 +59,7 @@ int main()
ft_putnbr_base(42, "01234567"); printf("\n");
ft_putnbr_base(INT_MAX, "0123456789abcdef"); printf("\n");
ft_putnbr_base(INT_MIN, "0123456789abcdef"); printf("\n");
+ ft_putnbr_base(0, "0123456789"); printf("\n");
ft_putnbr_base(INT_MAX, "");
ft_putnbr_base(INT_MAX, "a");
ft_putnbr_base(INT_MAX, "abb");
diff --git a/c05/ex06/ft_is_prime.c b/c05/ex06/ft_is_prime.c
index 73ca59b..3c83061 100644
--- a/c05/ex06/ft_is_prime.c
+++ b/c05/ex06/ft_is_prime.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/06 20:17:59 by cacharle #+# #+# */
-/* Updated: 2019/07/09 10:17:58 by cacharle ### ########.fr */
+/* Updated: 2019/07/12 07:43:36 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -23,7 +23,7 @@ int ft_is_prime(int nb)
return (0);
i = 1;
nbu = nb;
- while (i * i <= nbu)
+ while (i * i <= nbu) // ne fonctionne pas de 7 a 41
{
if (nbu % (i * 6 - 1) == 0)
return (0);
diff --git a/c05/main.c b/c05/main.c
index ac5a6e6..bdb7ad7 100644
--- a/c05/main.c
+++ b/c05/main.c
@@ -80,12 +80,16 @@ int main()
printf("prime(%d) = %d\n", 2147483647, ft_is_prime(2147483647));
printf("prime(%d) = %d\n", 899, ft_is_prime(899));
printf("prime(%d) = %d\n", 289, ft_is_prime(289));
- /*for (int i = INT_MAX; i > INT_MAX - 1000; i--)*/
+ printf("prime(%d) = %d\n", 2147483424, ft_is_prime(2147483424));
+ /*for (int i = INT_MAX; i > INT_MAX - 1000000; i--)*/
/*printf("%d is %d\n", i, ft_is_prime(i));*/
+ for (int i = 3; i <= 41; i++)
+ printf("%d is %d\n", i, ft_is_prime(i));
printf("---------------------\n");
printf("nextp(%d) = %d\n", 21, ft_find_next_prime(21));
printf("nextp(%d) = %d\n", 23, ft_find_next_prime(23));
+ printf("prime(%d) = %d\n", 2147483424, ft_find_next_prime(2147483424));
printf("nextp(%d) = %d\n", 2147483600, ft_find_next_prime(2147483600));
/*for (int i = INT_MAX; i > INT_MAX - 1000000; i--)*/
/*printf("%d is %d\n", i, ft_find_next_prime(i));*/
diff --git a/c07/ex03/ft_strjoin.c b/c07/ex03/ft_strjoin.c
index ea97bb6..7801820 100644
--- a/c07/ex03/ft_strjoin.c
+++ b/c07/ex03/ft_strjoin.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 16:14:25 by cacharle #+# #+# */
-/* Updated: 2019/07/09 09:08:52 by cacharle ### ########.fr */
+/* Updated: 2019/07/12 14:41:33 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -24,16 +24,11 @@ int my_strlen(char *str)
int cummulative_strlen(int size, char **strs)
{
- int i;
int len;
len = 0;
- i = 0;
- while (size > 0)
- {
- len += my_strlen(strs[size - 1]);
- size--;
- }
+ while (size-- > 0)
+ len += my_strlen(strs[size]);
return (len);
}
@@ -42,26 +37,24 @@ 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) + 1));
+ + my_strlen(sep) * (size - (size == 0 ? 0 : 1) + 1)));
+ if (join == NULL)
+ return (NULL);
j = 0;
- l = 0;
- while (l < size)
+ k = 0;
+ while (k < 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++;
+ while (strs[k][i])
+ join[j++] = strs[k][i++];
+ i = 0;
+ while (k != size - 1 && sep[i])
+ join[j++] = sep[i++];
+ k++;
}
+ join[j] = '\0';
return (join);
}
diff --git a/c07/ex04/ft_convert_base.c b/c07/ex04/ft_convert_base.c
index f30c3e5..0abdbe8 100644
--- a/c07/ex04/ft_convert_base.c
+++ b/c07/ex04/ft_convert_base.c
@@ -6,118 +6,60 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/08 16:16:53 by cacharle #+# #+# */
-/* Updated: 2019/07/10 06:37:09 by cacharle ### ########.fr */
+/* Updated: 2019/07/12 12:07:28 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int check_base(char *base)
-{
- int i;
- int j;
-
- i = 0;
- while (base[i])
- {
- if (base[i] == '-' || base[i] == '+' || base[i] == ' '
- || base[i] == '\t' || base[i] == '\n' || base[i] == '\v'
- || base[i] == '\f' || base[i] == '\r')
- return (0);
- j = 0;
- while (base[j])
- {
- if (j != i && base[j] == base[i])
- return (0);
- j++;
- }
- i++;
- }
- if (i < 2)
- return (0);
- return (1);
-}
-
-int ft_pow(int base, int exponent)
-{
- int accumulator;
-
- accumulator = 1;
- while (exponent-- > 0)
- accumulator *= base;
- return (accumulator);
-}
-
-
-int position_in_base(char digit, char *base)
-{
- int i;
+#include <stdlib.h>
- i = 0;
- while (base[i] != digit)
- i++;
- return (i);
-}
+int check_base(char *base);
+int ft_pow(int base, int exponent);
+int position_in_base(char digit, char *base);
+int some_strlen(char *str);
-// CHECK THE STR NOT JUST THE BASE (you idiot)
-int ft_atoi_base(char *str, char *base)
+int from_base(char *str, char *base)
{
int radix;
int i;
int j;
int nb;
+ int is_negative;
- if (!check_base(base))
- return (0);
+ while (*str == ' ' || *str == '\t' || *str == '\n'
+ || *str == '\v' || *str == '\f' || *str == '\r')
+ str++;
+ is_negative = 0;
+ while (*str == '-' || *str == '+')
+ if (*str++ == '-')
+ is_negative = !is_negative;
nb = 0;
radix = 0;
while (base[radix])
radix++;
i = 0;
- while (str[i])
+ while (position_in_base(str[i], base) != -1)
i++;
j = 0;
while (--i >= 0)
- {
- nb += ft_pow(radix, i) * position_in_base(str[j], base);
- j++;
- }
- return (nb);
-}
-
-int some_strlen(char *str)
-{
- int counter;
-
- counter = 0;
- while (str[counter])
- counter++;
- return (counter);
+ nb += ft_pow(radix, i) * position_in_base(str[j++], base);
+ return (is_negative ? -nb : nb);
}
-char *to_base(int nbr, char *base)
+char *to_base(int nbr, char *base, int radix, int is_negative)
{
- int radix;
int i;
+ int j;
unsigned int nbu;
char rev_digits[1024];
char *ret;
- int j;
- int is_negative;
- /*if (!check_base(base))*/
- /*return (NULL);*/
- radix = some_strlen(base);
nbu = nbr;
- is_negative = 0;
- if (nbr < 0)
- {
- is_negative = 1;
+ if (is_negative)
nbu = -nbr;
- }
- i = 0;
- printf("%d %s %d\n", radix, base, nbr);
+ i = nbu == 0 ? 1 : 0;
+ rev_digits[0] = base[0];
while (nbu > 0)
{
- printf("%u\n", nbu % radix);
rev_digits[i] = base[nbu % radix];
nbu /= radix;
i++;
@@ -125,27 +67,21 @@ char *to_base(int nbr, char *base)
ret = malloc(sizeof(char) * i + (is_negative ? 1 : 0));
j = 0;
if (is_negative)
- {
ret[0] = '-';
- j++;
- }
- while (i-- > 0)
- ret[j++] = rev_digits[i];
+ while (i-- + (is_negative ? 1 : 0) > 0)
+ ret[j++ + (is_negative ? 1 : 0)] = rev_digits[i];
ret[j] = '\0';
- for (int i = 0; i < 4; i++)
- printf("%c ", rev_digits[i]);
- printf("\n");
- for (int i = 0; i < 4; i++)
- printf("%c ", ret[i]);
- printf("\n");
return (ret);
}
char *ft_convert_base(char *nbr, char *base_from, char *base_to)
{
- int converted_nb;
-
- int nb;
- return NULL;
-
+ int nb;
+ char *parsed_nbr;
+
+ if (!check_base(base_from) || !check_base(base_to))
+ return (NULL);
+ parsed_nbr = nbr;
+ nb = from_base(parsed_nbr, base_from);
+ return (to_base(nb, base_to, some_strlen(base_to), nb < 0));
}
diff --git a/c07/ex04/ft_convert_base2.c b/c07/ex04/ft_convert_base2.c
index e69de29..be9a03e 100644
--- a/c07/ex04/ft_convert_base2.c
+++ b/c07/ex04/ft_convert_base2.c
@@ -0,0 +1,69 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_convert_base2.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/10 20:22:09 by cacharle #+# #+# */
+/* Updated: 2019/07/11 10:10:08 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int check_base(char *base)
+{
+ int i;
+ int j;
+
+ i = 0;
+ while (base[i])
+ {
+ if (base[i] == '-' || base[i] == '+' || base[i] == ' '
+ || base[i] == '\t' || base[i] == '\n' || base[i] == '\v'
+ || base[i] == '\f' || base[i] == '\r')
+ return (0);
+ j = 0;
+ while (base[j])
+ {
+ if (j != i && base[j] == base[i])
+ return (0);
+ j++;
+ }
+ i++;
+ }
+ if (i < 2)
+ return (0);
+ return (1);
+}
+
+int ft_pow(int base, int exponent)
+{
+ int accumulator;
+
+ accumulator = 1;
+ while (exponent-- > 0)
+ accumulator *= base;
+ return (accumulator);
+}
+
+int position_in_base(char digit, char *base)
+{
+ int i;
+
+ i = 0;
+ while (digit != base[i] && base[i])
+ i++;
+ if (base[i] == '\0')
+ return (-1);
+ return (i);
+}
+
+int some_strlen(char *str)
+{
+ int counter;
+
+ counter = 0;
+ while (str[counter])
+ counter++;
+ return (counter);
+}
diff --git a/c07/ex05/ft_split.c b/c07/ex05/ft_split.c
index 956782f..3ff2e43 100644
--- a/c07/ex05/ft_split.c
+++ b/c07/ex05/ft_split.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/08 15:58:03 by cacharle #+# #+# */
-/* Updated: 2019/07/09 12:42:21 by cacharle ### ########.fr */
+/* Updated: 2019/07/13 08:15:31 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -24,41 +24,51 @@ int count_segment(char *str, char *charset)
{
int counter;
- counter = 1;
+ counter = 0;
while (*str)
{
- if (in_charset(*str, charset))
+ if (!in_charset(*str, charset))
+ {
counter++;
+ while (!in_charset(*str, charset) && *str)
+ str++;
+ if (!*str)
+ break ;
+ }
str++;
}
return (counter);
}
-char **ft_split(char *str, char *charset)
+char **heck(char *str, char *charset, char *tmp, int i)
{
char **strs;
- char *tmp;
- int i;
int j;
- int k;
- strs = (char**)malloc(sizeof(char*) * (count_segment(str, charset) + 1));
- printf("%d\n", count_segment(str, charset));
- k = 0;
+ if ((strs = (char**)malloc(sizeof(char*)
+ * (count_segment(str, charset) + 1))) == NULL)
+ return (NULL);
+ j = 0;
while (*str)
{
+ while (in_charset(*str, charset))
+ str++;
i = 0;
- while (!in_charset(str[i], charset))
+ while (!in_charset(str[i], charset) && str[i])
i++;
- tmp = (char*)malloc(sizeof(char) * i);
- if (tmp == NULL)
- printf("bonjour");
+ if ((tmp = (char*)malloc(sizeof(char) * i + 1)) == NULL)
+ return (NULL);
i = 0;
- while (!in_charset(*str, charset))
+ while (!in_charset(*str, charset) && *str)
tmp[i++] = *str++;
- strs[k++] = tmp;
- str++;
+ tmp[i] = '\0';
+ strs[j++] = tmp;
}
- strs[k] = 0;
+ strs[j] = 0;
return (strs);
}
+
+char **ft_split(char *str, char *charset)
+{
+ return (heck(str, charset, NULL, 0));
+}
diff --git a/c07/main.c b/c07/main.c
index 729720b..e85f111 100644
--- a/c07/main.c
+++ b/c07/main.c
@@ -6,6 +6,7 @@
#include "ex02/ft_ultimate_range.c"
#include "ex03/ft_strjoin.c"
#include "ex04/ft_convert_base.c"
+#include "ex04/ft_convert_base2.c"
#include "ex05/ft_split.c"
int main()
@@ -37,28 +38,55 @@ int main()
printf("---------------\n");
char *strs[] = {"bon", "je", "suis", "charles"};
- char *sep = ", ";
+ char *sep = "%&^";
int size = 4;
char *join;
join = ft_strjoin(size, strs, sep);
printf("[%d] %s\n", my_strlen(join), join);
- /*for (int i = 0; i < my_strlen(join) + 1; i++)*/
- /*printf("%d ", join[i]);*/
+ for (int i = 0; i < my_strlen(join) + 1; i++)
+ printf("%d ", join[i]);
free(join);
printf("\n---------------\n");
- printf("%s\n", ft_convert_base("101010", "01", "0123456789"));
- printf("%s\n", to_base(34, "10"));
+ char *converted;
+ converted = ft_convert_base("-101010", "01", "0123456789");
+ printf("%s\n", converted);
+ free(converted);
+ converted = ft_convert_base(" -+1010102345678ff", "01", "0123456789abcdef");
+ printf("%s\n", converted);
+ free(converted);
+ converted = ft_convert_base(" \t\f\v +34589qw", "01234567", "012");
+ printf("%s\n", converted);
+ free(converted);
+ converted = ft_convert_base(" \t\f\v +asdf", "fgh", ".?");
+ printf("%s\n", converted);
+ free(converted);
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "01234567", "0+12"));
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "01234567", "012 "));
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "012345-67", "012"));
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "012\t34567", "012"));
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "0", "012"));
+ printf("%s\n", ft_convert_base(" \t\f\v +34589qw", "01", ""));
+ printf("%s\n", ft_convert_base(" \t\f\v +34w", "01", "0123456789"));
+ printf("%s\n", ft_convert_base(" \t\f\v +34w", "01", "!?"));
- /*printf("\n---------------\n");*/
- /*char *str = "bon.je.suis,asdofoisafj.ladjsf";*/
- /*char *charset = "";*/
- /*char **sstrs = ft_split(str, charset);*/
- /*for (int i = 0; sstrs[i] != 0; i++)*/
- /*printf("%s\n", sstrs[i]);*/
- /*for (int i = 0; sstrs[i] != 0; i++)*/
- /*free(sstrs[i]);*/
- /*free(sstrs);*/
+ printf("\n---------------\n");
+ char *const str = "3YaZkAP30iGoBWv L asdf h LbpX8Hx FWHwB2u1FH0S5";
+ char *begin = "\n \t hgonjour";
+ char *end = "jesuis\n\t hhh";
+ char *empty = "";
+ char *charset = "\n\t ";
+ char **sstrs = ft_split(begin, charset);
+ for (int i = 0; i < count_segment(begin, charset) + 1; i++)
+ {
+ printf("\n%s: ", sstrs[i]);
+ /*for (int j = 0; j < 10; j++)*/
+ /*printf("%d ", sstrs[i][j]);*/
+ }
+ if (sstrs)
+ for (int i = 0; sstrs[i] != 0; i++)
+ free(sstrs[i]);
+ free(sstrs);
return 0;
}
diff --git a/c08/boolean_main.c b/c08/boolean_main.c
new file mode 100644
index 0000000..9e8e428
--- /dev/null
+++ b/c08/boolean_main.c
@@ -0,0 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* boolean_main.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/11 14:40:38 by cacharle #+# #+# */
+/* Updated: 2019/07/11 14:40:40 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "./ex01/ft_boolean.h"
+
+void ft_putstr(char *str)
+{
+ while (*str)
+ write(1, str++, 1);
+}
+
+t_bool ft_is_even(int nbr)
+{
+ return ((EVEN(nbr)) ? TRUE : FALSE);
+}
+
+int main(int argc, char **argv)
+{
+ (void)argv;
+ if (ft_is_even(argc - 1) == TRUE)
+ ft_putstr(EVEN_MSG);
+ else
+ ft_putstr(ODD_MSG);
+ return (SUCCESS);
+}
diff --git a/c08/ex00/ft.h b/c08/ex00/ft.h
index 5dbbb51..9575169 100644
--- a/c08/ex00/ft.h
+++ b/c08/ex00/ft.h
@@ -6,12 +6,12 @@
/* 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 */
+/* Updated: 2019/07/12 14:50:28 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_H
-#define FT_H
+# define FT_H
void ft_putchar(char c);
void ft_swap(int *a, int *b);
diff --git a/c08/ex01/ft_boolean.h b/c08/ex01/ft_boolean.h
index 43a3c4f..6728409 100644
--- a/c08/ex01/ft_boolean.h
+++ b/c08/ex01/ft_boolean.h
@@ -6,29 +6,28 @@
/* 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 */
+/* Updated: 2019/07/11 14:37:46 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_BOOLEAN_H
-#define FT_BOOLEAN_H
+# define FT_BOOLEAN_H
-#include <unistd.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)
+# define TRUE 1
+# define FALSE 0
+# 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);
+ true,
+ false
+} 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
index 9a41241..ba01929 100644
--- a/c08/ex02/ft_abs.h
+++ b/c08/ex02/ft_abs.h
@@ -6,13 +6,13 @@
/* 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 */
+/* Updated: 2019/07/13 08:56:29 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_ABS_H
-#define FT_ABS_H
+# define FT_ABS_H
-#define ABS(x) (x < 0 ? -x : x)
+# define ABS(x) ( ( (x) < 0) ? -(x) : (x) )
#endif
diff --git a/c08/ex03/ft_point.h b/c08/ex03/ft_point.h
index 088b792..5129a4f 100644
--- a/c08/ex03/ft_point.h
+++ b/c08/ex03/ft_point.h
@@ -6,16 +6,16 @@
/* 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 */
+/* Updated: 2019/07/11 14:13:47 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_POINT_H
-#define FT_POINT_H
+# define FT_POINT_H
typedef struct {
int x;
int y;
-} t_point;
+} t_point;
#endif
diff --git a/c08/ex04/ft_stock_str.h b/c08/ex04/ft_stock_str.h
index ccadd2f..2ce09f4 100644
--- a/c08/ex04/ft_stock_str.h
+++ b/c08/ex04/ft_stock_str.h
@@ -6,18 +6,18 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/08 16:54:59 by cacharle #+# #+# */
-/* Updated: 2019/07/08 16:56:02 by cacharle ### ########.fr */
+/* Updated: 2019/07/11 14:14:13 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_STOCK_STR_H
-#define FT_STOCK_STR_H
+# define FT_STOCK_STR_H
-typedef struct s_stock_str
+typedef struct s_stock_str
{
int size;
char *str;
char *copy;
-} t_stock_str;
+} t_stock_str;
#endif
diff --git a/c08/ex04/ft_strs_to_tab.c b/c08/ex04/ft_strs_to_tab.c
index 67a0304..f6fbfaf 100644
--- a/c08/ex04/ft_strs_to_tab.c
+++ b/c08/ex04/ft_strs_to_tab.c
@@ -6,35 +6,58 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 17:15:32 by cacharle #+# #+# */
-/* Updated: 2019/07/08 17:10:21 by cacharle ### ########.fr */
+/* Updated: 2019/07/14 11:12:08 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "ft_stock_str.h"
-struct s_stock_str *ft_strs_to_tab(int ac, char **av)
+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 = (char*)malloc(sizeof(char) * ft_strlen(src));
+ if (dup_ptr == NULL)
+ return (NULL);
+ i = 0;
+ while (src[i])
+ {
+ dup_ptr[i] = src[i];
+ i++;
+ }
+ dup_ptr[i] = '\0';