diff --git a/C_08/c-08.tar b/C_08/c-08.tar index 3e1fa46..d3a8dd7 100644 Binary files a/C_08/c-08.tar and b/C_08/c-08.tar differ diff --git a/C_09/Makefile b/C_09/Makefile index f7df363..c3ae2c0 100644 --- a/C_09/Makefile +++ b/C_09/Makefile @@ -11,7 +11,7 @@ # clone: - @git clone git@vogsphere.42lausanne.ch:vogsphere/intra-uuid-c788fb82-b004-4075-9eed-e90d2aa94bc7-3745071 git + @git clone git@vogsphere.42lausanne.ch:vogsphere/intra-uuid-27c9dbdb-d7d5-4a65-88f3-b649e102aa89-3748576 git cc: @norminette -R CheckForbiddenSourceHeader diff --git a/C_09/c-09.tar b/C_09/c-09.tar index f882ff4..a9ceb75 100644 Binary files a/C_09/c-09.tar and b/C_09/c-09.tar differ diff --git a/C_09/git/ex00/ft_putchar.o b/C_09/git/ex00/ft_putchar.o new file mode 100644 index 0000000..d115e78 Binary files /dev/null and b/C_09/git/ex00/ft_putchar.o differ diff --git a/C_09/git/ex00/ft_putstr.o b/C_09/git/ex00/ft_putstr.o new file mode 100644 index 0000000..e3cb674 Binary files /dev/null and b/C_09/git/ex00/ft_putstr.o differ diff --git a/C_09/git/ex00/ft_strcmp.o b/C_09/git/ex00/ft_strcmp.o new file mode 100644 index 0000000..92f5c74 Binary files /dev/null and b/C_09/git/ex00/ft_strcmp.o differ diff --git a/C_09/git/ex00/ft_strlen.o b/C_09/git/ex00/ft_strlen.o new file mode 100644 index 0000000..32ea09c Binary files /dev/null and b/C_09/git/ex00/ft_strlen.o differ diff --git a/C_09/git/ex00/ft_swap.o b/C_09/git/ex00/ft_swap.o new file mode 100644 index 0000000..58ebf01 Binary files /dev/null and b/C_09/git/ex00/ft_swap.o differ diff --git a/C_09/git/ex00/libft.a b/C_09/git/ex00/libft.a new file mode 100644 index 0000000..7f7bf64 Binary files /dev/null and b/C_09/git/ex00/libft.a differ diff --git a/C_09/git/ex00/libft_creator.sh b/C_09/git/ex00/libft_creator.sh index 2490941..cd64bee 100755 --- a/C_09/git/ex00/libft_creator.sh +++ b/C_09/git/ex00/libft_creator.sh @@ -1,6 +1,4 @@ #!/bin/sh rm -f *.o libft.a -gcc -Wall -Wextra -Werror -c *.c -ar -cq libft.a *.o -#ar -t libft.a -#rm -f *.o +gcc -Wall -Wextra -Werror -c ft_putchar.c ft_swap.c ft_putstr.c ft_strlen.c ft_strcmp.c +ar -rcs libft.a ft_putchar.o ft_swap.o ft_putstr.o ft_strlen.o ft_strcmp.o diff --git a/C_09/git/ex00/main.sh b/C_09/git/ex00/main.sh index 5892b30..b371864 100755 --- a/C_09/git/ex00/main.sh +++ b/C_09/git/ex00/main.sh @@ -8,7 +8,9 @@ echo sh libft_creator.sh rm -f *.o echo -echo $(basename $PWD): gcc -Wall -Wextra -Werror -o a.out -L. -lft main.c +ar -t libft.a +echo +echo $(basename $PWD): ./a.out "$@" rm -f a.out diff --git a/C_09/git/ex01/Makefile b/C_09/git/ex01/Makefile index 3dac316..ee68154 100644 --- a/C_09/git/ex01/Makefile +++ b/C_09/git/ex01/Makefile @@ -6,7 +6,7 @@ # By: gbaconni +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2021/08/22 17:28:57 by gbaconni #+# #+# # -# Updated: 2021/08/22 18:12:53 by gbaconni ### ########.fr # +# Updated: 2021/08/26 11:41:39 by gbaconni ### ########.fr # # # # **************************************************************************** # diff --git a/C_09/git/ex02/ft_split.c b/C_09/git/ex02/ft_split.c index 01f875b..9e36120 100644 --- a/C_09/git/ex02/ft_split.c +++ b/C_09/git/ex02/ft_split.c @@ -6,7 +6,7 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/22 18:14:04 by gbaconni #+# #+# */ -/* Updated: 2021/08/26 09:53:30 by gbaconni ### ########.fr */ +/* Updated: 2021/08/26 11:46:51 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -75,7 +75,7 @@ char *ft_copy(char *str, int size) if (size > 0) ft_strncpy(result, str, size); else - result[0] = '\0'; + result = 0; return (result); } diff --git a/C_09/git/ex02/main.c b/C_09/git/ex02/main.c index 8599195..74cc17d 100644 --- a/C_09/git/ex02/main.c +++ b/C_09/git/ex02/main.c @@ -6,7 +6,7 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 10:50:59 by gbaconni #+# #+# */ -/* Updated: 2021/08/25 14:11:02 by gbaconni ### ########.fr */ +/* Updated: 2021/08/26 11:45:37 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/C_09/git_old/ex00/ft.h b/C_09/git_old/ex00/ft.h new file mode 100644 index 0000000..ed4dc9f --- /dev/null +++ b/C_09/git_old/ex00/ft.h @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/20 10:17:09 by gbaconni #+# #+# */ +/* Updated: 2021/08/20 12:05:50 by gbaconni ### ########.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/C_09/git_old/ex01/Makefile b/C_09/git_old/ex01/Makefile index 02d7b20..3dac316 100644 --- a/C_09/git_old/ex01/Makefile +++ b/C_09/git_old/ex01/Makefile @@ -18,33 +18,33 @@ NAME = libft.a SRCDIR = srcs +SRC = $(SRCDIR)/ft_putchar.c $(SRCDIR)/ft_swap.c $(SRCDIR)/ft_putstr.c $(SRCDIR)/ft_strlen.c $(SRCDIR)/ft_strcmp.c +OBJ = ${SRC:.c=.o} -SRC = ft_putchar.c \ - ft_swap.c \ - ft_putstr.c \ - ft_strlen.c \ - ft_strcmp.c - -HDR = ft.h - -INCLUDE = includes +HDRDIR = includes +HDR = $(HDRDIR)/ft.h CC = gcc CFLAGS = -Wall -Wextra -Werror AR = ar -ARFLAGS = -cq +ARFLAGS = -rcs + +RM = rm +RMFLAGS = -f all: $(NAME) -$(NAME): - cd $(SRCDIR) && $(CC) $(CFLAGS) -I $(INCLUDE) -c $(SRC) - $(AR) $(ARFLAGS) $(NAME) $(SRCDIR)/*.o +.c.o: + $(CC) $(CFLAGS) -I $(HDRDIR) -c $< -o ${<:.c=.o} + +$(NAME): $(OBJ) + $(AR) $(ARFLAGS) $@ $^ clean: - @/bin/rm -f **/*.o + $(RM) $(RMFLAGS) $(OBJ) fclean: clean - @/bin/rm -f $(NAME) + $(RM) $(RMFLAGS) $(NAME) re: fclean all diff --git a/C_09/git_old/ex01/main.c b/C_09/git_old/ex01/main.c index bc1c4cc..82f98f6 100644 --- a/C_09/git_old/ex01/main.c +++ b/C_09/git_old/ex01/main.c @@ -14,12 +14,7 @@ #include #include #include - -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); +#include "ft.h" int main(void) { diff --git a/C_09/git_old/ex01/main.sh b/C_09/git_old/ex01/main.sh index 83595c0..c6ee0fb 100755 --- a/C_09/git_old/ex01/main.sh +++ b/C_09/git_old/ex01/main.sh @@ -7,9 +7,9 @@ norminette -R CheckForbiddenSourceHeader {} \; echo make fclean make -rm -f *.o echo echo $(basename $PWD): -gcc -Wall -Wextra -Werror -o a.out -L. -lft main.c +gcc -Wall -Wextra -Werror main.c -I includes -L . -lft -o a.out ./a.out "$@" +make fclean rm -f a.out diff --git a/C_09/git_old/ex02/ft_split.c b/C_09/git_old/ex02/ft_split.c index bc28908..01f875b 100644 --- a/C_09/git_old/ex02/ft_split.c +++ b/C_09/git_old/ex02/ft_split.c @@ -6,13 +6,15 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/22 18:14:04 by gbaconni #+# #+# */ -/* Updated: 2021/08/24 13:00:34 by gbaconni ### ########.fr */ +/* Updated: 2021/08/26 09:53:30 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include #include +int g_t = 0; + static char *ft_strncpy(char *dest, char *src, unsigned int n) { unsigned int i; @@ -28,19 +30,22 @@ static char *ft_strncpy(char *dest, char *src, unsigned int n) dest[i] = '\0'; i++; } + dest[i] = '\0'; return (dest); } static int ft_is_charset(char c, char *charset) { - char *p_charset; - int r; + int i; - r = 0; - p_charset = charset; - while (*p_charset != '\0') - r |= (*p_charset++ == c); - return (r); + i = 0; + while (charset[i] != '\0') + { + if (c == charset[i]) + return (1); + i++; + } + return (0); } static int ft_split_len(char *str, char *charset) @@ -49,6 +54,8 @@ static int ft_split_len(char *str, char *charset) int size; size = 2; + if (str == NULL || charset == NULL) + return (size); p_str = str; while (*p_str != '\0') { @@ -63,6 +70,8 @@ char *ft_copy(char *str, int size) char *result; result = (char *) malloc((size + 1) * sizeof(char)); + if (!result) + return (NULL); if (size > 0) ft_strncpy(result, str, size); else @@ -74,24 +83,25 @@ char **ft_split(char *str, char *charset) { char **strs; char *start; - int size; int i; - size = ft_split_len(str, charset); - strs = malloc((size) * sizeof(strs)); + strs = malloc(ft_split_len(str, charset) * sizeof(strs)); + if (strs == NULL || charset == NULL || str == NULL) + return (NULL); start = str; i = 0; while (1) { - if (ft_is_charset(*str, charset) == 1 || *str == '\0') + if (ft_is_charset(*str, charset) == 1 || (*str == '\0' && g_t > 0)) { - size = str - start; - if (size > 0) - strs[i++] = ft_copy(start, size); + if (str - start > 0) + strs[i++] = ft_copy(start, str - start); start = str + 1; - if (*str == '\0') - break ; } + else + g_t++; + if (*str == '\0') + break ; str++; } strs[i] = ft_copy(str, 0); diff --git a/C_09/git_old/ex02/main.c b/C_09/git_old/ex02/main.c index 97abb88..8599195 100644 --- a/C_09/git_old/ex02/main.c +++ b/C_09/git_old/ex02/main.c @@ -6,7 +6,7 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 10:50:59 by gbaconni #+# #+# */ -/* Updated: 2021/08/24 11:56:21 by gbaconni ### ########.fr */ +/* Updated: 2021/08/25 14:11:02 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,24 +17,30 @@ char **ft_split(char *str, char *charset); -int main(void) +int main(int argc, char *argv[]) { - char str[32]; - char charset[32]; char **strs; + char *str; + char *charset; int i; - printf("Input String [Max 32]: "); - scanf("%s", str); - printf("Input Charset [Max 32]: "); - scanf("%s", charset); + if (argc < 2) + { + printf("%s \n", argv[0]); + return (1); + } + str = argv[1]; + charset = argv[2]; + if (str[0] == '\0') + str = NULL; strs = ft_split(str, charset); printf("str=%s charset=%s (ft_split)\n", str, charset); i = 0; - while (strs[i][0] != '\0') + while (strs[i]) { printf("strs[%d] = %s\n", i, strs[i]); i++; } + free(strs); return (0); } diff --git a/C_09/git_old/ex02/main.sh b/C_09/git_old/ex02/main.sh index 3042505..f45787b 100755 --- a/C_09/git_old/ex02/main.sh +++ b/C_09/git_old/ex02/main.sh @@ -3,7 +3,8 @@ set -e rm -f a.out #norminette -R CheckForbiddenSourceHeader ft_*.c norminette -R CheckForbiddenSourceHeader +#gcc -Wall -Wextra -Werror -fsanitize=address -g -o a.out *.c gcc -Wall -Wextra -Werror -o a.out *.c echo $(basename $PWD): -./a.out +./a.out "$@" rm -f a.out diff --git a/C_09/git_old2/ex00/ft_putchar.c b/C_09/git_old2/ex00/ft_putchar.c new file mode 100644 index 0000000..7cfa8c1 --- /dev/null +++ b/C_09/git_old2/ex00/ft_putchar.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:41:08 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:41:17 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +void ft_putchar(char c) +{ + write(1, &c, 1); +} diff --git a/C_09/git_old2/ex00/ft_putstr.c b/C_09/git_old2/ex00/ft_putstr.c new file mode 100644 index 0000000..4368cae --- /dev/null +++ b/C_09/git_old2/ex00/ft_putstr.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:42:02 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:42:04 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +void ft_putstr(char *str) +{ + char *p_str; + + p_str = str; + while (*p_str != '\0') + write(1, p_str++, 1); +} diff --git a/C_09/git_old2/ex00/ft_strcmp.c b/C_09/git_old2/ex00/ft_strcmp.c new file mode 100644 index 0000000..7fd53da --- /dev/null +++ b/C_09/git_old2/ex00/ft_strcmp.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:43:35 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:43:44 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_strcmp(char *s1, char *s2) +{ + char c1; + char c2; + + c1 = '\0'; + c2 = '\0'; + while (c1 == c2) + { + c1 = *s1++; + c2 = *s2++; + if (c1 == '\0') + break ; + } + return (c1 - c2); +} diff --git a/C_09/git_old2/ex00/ft_strlen.c b/C_09/git_old2/ex00/ft_strlen.c new file mode 100644 index 0000000..324bc67 --- /dev/null +++ b/C_09/git_old2/ex00/ft_strlen.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:42:47 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:43:21 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_strlen(char *str) +{ + char *p_str; + + p_str = str; + while (*p_str != '\0') + p_str++; + return (p_str - str); +} diff --git a/C_09/git_old2/ex00/ft_swap.c b/C_09/git_old2/ex00/ft_swap.c new file mode 100644 index 0000000..373fbbe --- /dev/null +++ b/C_09/git_old2/ex00/ft_swap.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_swap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:41:30 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:41:35 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +void ft_swap(int *a, int *b) +{ + int n; + + n = *a; + *a = *b; + *b = n; +} diff --git a/C_09/git_old2/ex00/libft_creator.sh b/C_09/git_old2/ex00/libft_creator.sh new file mode 100755 index 0000000..2490941 --- /dev/null +++ b/C_09/git_old2/ex00/libft_creator.sh @@ -0,0 +1,6 @@ +#!/bin/sh +rm -f *.o libft.a +gcc -Wall -Wextra -Werror -c *.c +ar -cq libft.a *.o +#ar -t libft.a +#rm -f *.o diff --git a/C_09/git_old2/ex00/main.c b/C_09/git_old2/ex00/main.c new file mode 100644 index 0000000..bc1c4cc --- /dev/null +++ b/C_09/git_old2/ex00/main.c @@ -0,0 +1,46 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:55:33 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 17:19:48 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include + +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); + +int main(void) +{ + int a; + int b; + int r; + + printf("ft_putchar: (expected Z)\n"); + ft_putchar('Z'); + printf("\n\n"); + a = 42; + b = 21; + printf("ft_swap: (expected a=21 b=42)\n"); + ft_swap(&a, &b); + printf("a=%d b=%d\n\n", a, b); + printf("ft_putstr: (expected hello)\n"); + ft_putstr("hello\n\n"); + printf("ft_strlen: (expected 5)\n"); + r = ft_strlen("hello"); + printf("%d\n\n", r); + printf("ft_strcmp: (expected 0)\n"); + r = ft_strcmp("abc","abc"); + printf("%d\n\n", r); +} diff --git a/C_09/git_old2/ex00/main.sh b/C_09/git_old2/ex00/main.sh new file mode 100755 index 0000000..5892b30 --- /dev/null +++ b/C_09/git_old2/ex00/main.sh @@ -0,0 +1,14 @@ +#!/bin/sh +set -e +find . -type f -name '*.h' -exec \ +norminette -R CheckDefine {} \; +find . -type f -name '*.c' \! -name 'main.c' -exec \ +norminette -R CheckForbiddenSourceHeader {} \; +echo +sh libft_creator.sh +rm -f *.o +echo +echo $(basename $PWD): +gcc -Wall -Wextra -Werror -o a.out -L. -lft main.c +./a.out "$@" +rm -f a.out diff --git a/C_09/git_old2/ex01/Makefile b/C_09/git_old2/ex01/Makefile new file mode 100644 index 0000000..02d7b20 --- /dev/null +++ b/C_09/git_old2/ex01/Makefile @@ -0,0 +1,50 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: gbaconni +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2021/08/22 17:28:57 by gbaconni #+# #+# # +# Updated: 2021/08/22 18:12:53 by gbaconni ### ########.fr # +# # +# **************************************************************************** # + +# +# make fclean +# make +# + +NAME = libft.a + +SRCDIR = srcs + +SRC = ft_putchar.c \ + ft_swap.c \ + ft_putstr.c \ + ft_strlen.c \ + ft_strcmp.c + +HDR = ft.h + +INCLUDE = includes + +CC = gcc +CFLAGS = -Wall -Wextra -Werror +AR = ar +ARFLAGS = -cq + +all: $(NAME) + +$(NAME): + cd $(SRCDIR) && $(CC) $(CFLAGS) -I $(INCLUDE) -c $(SRC) + $(AR) $(ARFLAGS) $(NAME) $(SRCDIR)/*.o + +clean: + @/bin/rm -f **/*.o + +fclean: clean + @/bin/rm -f $(NAME) + +re: fclean all + diff --git a/C_09/git_old2/ex01/includes/ft.h b/C_09/git_old2/ex01/includes/ft.h new file mode 100644 index 0000000..4ee5228 --- /dev/null +++ b/C_09/git_old2/ex01/includes/ft.h @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/20 10:17:09 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 17:40:13 by gbaconni ### ########.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/C_09/git_old2/ex01/main.c b/C_09/git_old2/ex01/main.c new file mode 100644 index 0000000..bc1c4cc --- /dev/null +++ b/C_09/git_old2/ex01/main.c @@ -0,0 +1,46 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:55:33 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 17:19:48 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include + +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); + +int main(void) +{ + int a; + int b; + int r; + + printf("ft_putchar: (expected Z)\n"); + ft_putchar('Z'); + printf("\n\n"); + a = 42; + b = 21; + printf("ft_swap: (expected a=21 b=42)\n"); + ft_swap(&a, &b); + printf("a=%d b=%d\n\n", a, b); + printf("ft_putstr: (expected hello)\n"); + ft_putstr("hello\n\n"); + printf("ft_strlen: (expected 5)\n"); + r = ft_strlen("hello"); + printf("%d\n\n", r); + printf("ft_strcmp: (expected 0)\n"); + r = ft_strcmp("abc","abc"); + printf("%d\n\n", r); +} diff --git a/C_09/git_old2/ex01/main.sh b/C_09/git_old2/ex01/main.sh new file mode 100755 index 0000000..83595c0 --- /dev/null +++ b/C_09/git_old2/ex01/main.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -e +find . -type f -name '*.h' -exec \ +norminette -R CheckDefine {} \; +find . -type f -name '*.c' \! -name 'main.c' -exec \ +norminette -R CheckForbiddenSourceHeader {} \; +echo +make fclean +make +rm -f *.o +echo +echo $(basename $PWD): +gcc -Wall -Wextra -Werror -o a.out -L. -lft main.c +./a.out "$@" +rm -f a.out diff --git a/C_09/git_old2/ex01/srcs/ft_putchar.c b/C_09/git_old2/ex01/srcs/ft_putchar.c new file mode 100644 index 0000000..7cfa8c1 --- /dev/null +++ b/C_09/git_old2/ex01/srcs/ft_putchar.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:41:08 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:41:17 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +void ft_putchar(char c) +{ + write(1, &c, 1); +} diff --git a/C_09/git_old2/ex01/srcs/ft_putstr.c b/C_09/git_old2/ex01/srcs/ft_putstr.c new file mode 100644 index 0000000..4368cae --- /dev/null +++ b/C_09/git_old2/ex01/srcs/ft_putstr.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:42:02 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:42:04 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +void ft_putstr(char *str) +{ + char *p_str; + + p_str = str; + while (*p_str != '\0') + write(1, p_str++, 1); +} diff --git a/C_09/git_old2/ex01/srcs/ft_strcmp.c b/C_09/git_old2/ex01/srcs/ft_strcmp.c new file mode 100644 index 0000000..7fd53da --- /dev/null +++ b/C_09/git_old2/ex01/srcs/ft_strcmp.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:43:35 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:43:44 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_strcmp(char *s1, char *s2) +{ + char c1; + char c2; + + c1 = '\0'; + c2 = '\0'; + while (c1 == c2) + { + c1 = *s1++; + c2 = *s2++; + if (c1 == '\0') + break ; + } + return (c1 - c2); +} diff --git a/C_09/git_old2/ex01/srcs/ft_strlen.c b/C_09/git_old2/ex01/srcs/ft_strlen.c new file mode 100644 index 0000000..324bc67 --- /dev/null +++ b/C_09/git_old2/ex01/srcs/ft_strlen.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:42:47 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:43:21 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int ft_strlen(char *str) +{ + char *p_str; + + p_str = str; + while (*p_str != '\0') + p_str++; + return (p_str - str); +} diff --git a/C_09/git_old2/ex01/srcs/ft_swap.c b/C_09/git_old2/ex01/srcs/ft_swap.c new file mode 100644 index 0000000..373fbbe --- /dev/null +++ b/C_09/git_old2/ex01/srcs/ft_swap.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_swap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 14:41:30 by gbaconni #+# #+# */ +/* Updated: 2021/08/22 14:41:35 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +void ft_swap(int *a, int *b) +{ + int n; + + n = *a; + *a = *b; + *b = n; +} diff --git a/C_09/git_old2/ex02/ft_split.c b/C_09/git_old2/ex02/ft_split.c new file mode 100644 index 0000000..bc28908 --- /dev/null +++ b/C_09/git_old2/ex02/ft_split.c @@ -0,0 +1,99 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_split.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/22 18:14:04 by gbaconni #+# #+# */ +/* Updated: 2021/08/24 13:00:34 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include + +static char *ft_strncpy(char *dest, char *src, unsigned int n) +{ + unsigned int i; + + i = 0; + while (i < n && src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + while (i < n) + { + dest[i] = '\0'; + i++; + } + return (dest); +} + +static int ft_is_charset(char c, char *charset) +{ + char *p_charset; + int r; + + r = 0; + p_charset = charset; + while (*p_charset != '\0') + r |= (*p_charset++ == c); + return (r); +} + +static int ft_split_len(char *str, char *charset) +{ + char *p_str; + int size; + + size = 2; + p_str = str; + while (*p_str != '\0') + { + if (ft_is_charset(*p_str++, charset) == 1) + size++; + } + return (size); +} + +char *ft_copy(char *str, int size) +{ + char *result; + + result = (char *) malloc((size + 1) * sizeof(char)); + if (size > 0) + ft_strncpy(result, str, size); + else + result[0] = '\0'; + return (result); +} + +char **ft_split(char *str, char *charset) +{ + char **strs; + char *start; + int size; + int i; + + size = ft_split_len(str, charset); + strs = malloc((size) * sizeof(strs)); + start = str; + i = 0; + while (1) + { + if (ft_is_charset(*str, charset) == 1 || *str == '\0') + { + size = str - start; + if (size > 0) + strs[i++] = ft_copy(start, size); + start = str + 1; + if (*str == '\0') + break ; + } + str++; + } + strs[i] = ft_copy(str, 0); + return (strs); +} diff --git a/C_09/git_old2/ex02/main.c b/C_09/git_old2/ex02/main.c new file mode 100644 index 0000000..97abb88 --- /dev/null +++ b/C_09/git_old2/ex02/main.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/08/18 10:50:59 by gbaconni #+# #+# */ +/* Updated: 2021/08/24 11:56:21 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include + +char **ft_split(char *str, char *charset); + +int main(void) +{ + char str[32]; + char charset[32]; + char **strs; + int i; + + printf("Input String [Max 32]: "); + scanf("%s", str); + printf("Input Charset [Max 32]: "); + scanf("%s", charset); + strs = ft_split(str, charset); + printf("str=%s charset=%s (ft_split)\n", str, charset); + i = 0; + while (strs[i][0] != '\0') + { + printf("strs[%d] = %s\n", i, strs[i]); + i++; + } + return (0); +} diff --git a/C_09/git_old2/ex02/main.sh b/C_09/git_old2/ex02/main.sh new file mode 100755 index 0000000..3042505 --- /dev/null +++ b/C_09/git_old2/ex02/main.sh @@ -0,0 +1,9 @@ +#!/bin/sh +set -e +rm -f a.out +#norminette -R CheckForbiddenSourceHeader ft_*.c +norminette -R CheckForbiddenSourceHeader +gcc -Wall -Wextra -Werror -o a.out *.c +echo $(basename $PWD): +./a.out +rm -f a.out