diff options
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 */ /* */ /* ************************************************************************** */ @@ -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); @@ -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)); +} @@ -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'; |
