diff --git a/C_Piscine_C_07/c-07.tar b/C_Piscine_C_07/c-07.tar new file mode 100644 index 0000000..2f61c77 Binary files /dev/null and b/C_Piscine_C_07/c-07.tar differ diff --git a/C_Piscine_C_07/git/ex00/ft_strdup.c b/C_Piscine_C_07/git/ex00/ft_strdup.c index f3797a7..269fda9 100644 --- a/C_Piscine_C_07/git/ex00/ft_strdup.c +++ b/C_Piscine_C_07/git/ex00/ft_strdup.c @@ -6,12 +6,11 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/13 09:03:26 by gbaconni #+# #+# */ -/* Updated: 2021/08/18 18:06:07 by gbaconni ### ########.fr */ +/* Updated: 2021/08/19 15:21:48 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include -#include char *ft_strdup(char *src) { diff --git a/C_Piscine_C_07/git/ex01/ft_range.c b/C_Piscine_C_07/git/ex01/ft_range.c index d0ed773..916ee8b 100644 --- a/C_Piscine_C_07/git/ex01/ft_range.c +++ b/C_Piscine_C_07/git/ex01/ft_range.c @@ -6,27 +6,35 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 18:13:35 by gbaconni #+# #+# */ -/* Updated: 2021/08/18 18:32:22 by gbaconni ### ########.fr */ +/* Updated: 2021/08/19 16:10:59 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include +static int ft_abs(int n) +{ + if (n < 0) + n = -n; + return (n); +} + int *ft_range(int min, int max) { int *range; int size; int i; - if (min < max) - size = (max - min) + 1; + range = NULL; + if (min >= max) + return (range); else - return (NULL); + size = ft_abs(max - min); range = (int *) malloc(size * sizeof(int)); i = 0; while (i < size) { - range[i] = min + i; + range[i] = 1 + min + i; i++; } return (range); diff --git a/C_Piscine_C_07/git/ex01/main.c b/C_Piscine_C_07/git/ex01/main.c index 45547ca..3e9f989 100644 --- a/C_Piscine_C_07/git/ex01/main.c +++ b/C_Piscine_C_07/git/ex01/main.c @@ -6,7 +6,7 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 18:11:09 by gbaconni #+# #+# */ -/* Updated: 2021/08/18 18:31:33 by gbaconni ### ########.fr */ +/* Updated: 2021/08/19 16:11:21 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,13 @@ int *ft_range(int min, int max); +static int ft_abs(int n) +{ + if (n < 0) + n = -n; + return (n); +} + int main(void) { int i; @@ -33,7 +40,7 @@ int main(void) scanf("%d", &max); result = ft_range(min, max); printf("min=%d max=%d (ft_range)\nresult:\n", min, max); - size = (max - min) + 1; + size = ft_abs(max - min); printf("size=%d\n", size); i = 0; while (i < size) diff --git a/C_Piscine_C_07/git/ex02/ft_ultimate_range.c b/C_Piscine_C_07/git/ex02/ft_ultimate_range.c index fca1d92..c23973f 100644 --- a/C_Piscine_C_07/git/ex02/ft_ultimate_range.c +++ b/C_Piscine_C_07/git/ex02/ft_ultimate_range.c @@ -6,36 +6,56 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 18:13:35 by gbaconni #+# #+# */ -/* Updated: 2021/08/18 18:32:22 by gbaconni ### ########.fr */ +/* Updated: 2021/08/19 16:14:34 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include -#include + +static int ft_abs(int n) +{ + if (n < 0) + n = -n; + return (n); +} + +int *ft_range(int min, int max) +{ + int *range; + int size; + int i; + + range = NULL; + if (min >= max) + return (range); + else + size = ft_abs(max - min); + range = (int *) malloc(size * sizeof(int)); + i = 0; + while (i < size) + { + range[i] = 1 + min + i; + i++; + } + return (range); +} int ft_ultimate_range(int **range, int min, int max) { int *r; int size; - int i; (void) range; - if (min < max) - size = (max - min) - 2; - else + r = NULL; + size = 0; + if (min >= max) { - r = NULL; *range = r; - return (0); - } - r = (int *) malloc(size * sizeof(int)); - i = 0; - while (i < size) - { - r[i] = min + i + 1; - i++; + return (size); } + else + size = ft_abs(max - min); + r = ft_range(min, max); *range = r; - printf("size=%d min=%d max=%d\n", size, min, max); return (size); } diff --git a/C_Piscine_C_07/git/ex03/ft_strjoin.c b/C_Piscine_C_07/git/ex03/ft_strjoin.c new file mode 100644 index 0000000..adcc951 --- /dev/null +++ b/C_Piscine_C_07/git/ex03/ft_strjoin.c @@ -0,0 +1,49 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/19 11:25:51 by gbaconni #+# #+# */ +/* Updated: 2021/08/19 17:54:51 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include + +static int ft_strlen(char *str) +{ + int len; + + len = 0; + while (str[len++] != '\0') + continue ; + return (len); +} + +char *ft_strjoin(int size, char **strs, char *sep) +{ + char *str; + int len; + int i; + + len = 0; + len = strlen(sep); + printf("strlen %d", len); + len = 0; + len = ft_strlen(sep); + printf("ft_strlen %d", len); + len = 0; + i = 0; + while (i < size) + { + len += ft_strlen(strs[i]) - 1; + len += ft_strlen(sep) - 1; + } + printf("len=%d\n", len); + str = (char *) malloc(len * sizeof(char)); + return (str); +} diff --git a/C_Piscine_C_07/git/ex03/main.c b/C_Piscine_C_07/git/ex03/main.c new file mode 100644 index 0000000..ebe984d --- /dev/null +++ b/C_Piscine_C_07/git/ex03/main.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/19 11:11:01 by gbaconni #+# #+# */ +/* Updated: 2021/08/19 18:28:17 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include + +char *ft_strjoin(int size, char **strs, char *sep); + +int main(void) +{ + int i; + char *sep; + char **strs; + char *result; + + sep = ""; + strs = malloc(3 * sizeof(strs)); + i = 0; + while (i < 3) + { + printf("Input String #%d: ", i + 1); + scanf("%s", strs++); + } + printf("Input Separator: "); + scanf("%s", sep); + result = ft_strjoin(i, strs, sep); + printf("result=%s sep=%s (ft_strjoin)\nresult:\n", result, sep); + return (0); +} diff --git a/C_Piscine_C_07/git/ex03/main.sh b/C_Piscine_C_07/git/ex03/main.sh new file mode 100755 index 0000000..5481183 --- /dev/null +++ b/C_Piscine_C_07/git/ex03/main.sh @@ -0,0 +1,9 @@ +#!/bin/sh +set -e +rm -f a.out +#norminette -R CheckForbiddenSourceHeader +norminette -R CheckForbiddenSourceHeader ft_*.c +gcc -Wall -Wextra -Werror -o a.out ft_*.c main.c +echo $(basename $PWD): +./a.out +rm -f a.out