d
This commit is contained in:
parent
e76297409e
commit
d4bc0e05a5
109
Makefile
109
Makefile
@ -6,88 +6,93 @@
|
||||
# By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2022/09/27 08:39:27 by cchauvet #+# #+# #
|
||||
# Updated: 2022/10/04 14:23:05 by cchauvet ### ########.fr #
|
||||
# Updated: 2022/10/04 19:41:01 by cchauvet ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
SRCS = ft_isalpha.c \
|
||||
ft_isdigit.c \
|
||||
ft_isalnum.c \
|
||||
ft_isascii.c \
|
||||
ft_isprint.c \
|
||||
ft_strlen.c \
|
||||
ft_memset.c \
|
||||
ft_bzero.c \
|
||||
ft_memcpy.c \
|
||||
ft_memmove.c \
|
||||
ft_strlcpy.c \
|
||||
ft_strlcat.c \
|
||||
ft_toupper.c \
|
||||
ft_tolower.c \
|
||||
ft_strchr.c \
|
||||
ft_strrchr.c \
|
||||
ft_strncmp.c \
|
||||
ft_memchr.c \
|
||||
ft_memcmp.c \
|
||||
ft_strnstr.c \
|
||||
ft_atoi.c \
|
||||
ft_calloc.c \
|
||||
ft_strdup.c \
|
||||
ft_substr.c \
|
||||
ft_strjoin.c \
|
||||
ft_strtrim.c \
|
||||
ft_split.c \
|
||||
ft_itoa.c \
|
||||
ft_strmapi.c \
|
||||
ft_striteri.c \
|
||||
ft_putchar_fd.c \
|
||||
ft_putstr_fd.c \
|
||||
ft_putendl_fd.c \
|
||||
ft_putnbr_fd.c
|
||||
|
||||
SRCS = ft_isalpha.c \
|
||||
ft_isdigit.c \
|
||||
ft_isalnum.c \
|
||||
ft_isascii.c \
|
||||
ft_isprint.c \
|
||||
ft_strlen.c \
|
||||
ft_memset.c \
|
||||
ft_strdup.c \
|
||||
ft_strndup.c \
|
||||
ft_bzero.c \
|
||||
ft_toupper.c \
|
||||
ft_tolower.c \
|
||||
ft_strchr.c \
|
||||
ft_strrchr.c \
|
||||
ft_strncmp.c \
|
||||
ft_memcpy.c \
|
||||
ft_memmove.c \
|
||||
ft_memchr.c \
|
||||
ft_memcmp.c \
|
||||
ft_strnstr.c \
|
||||
ft_strlcat.c \
|
||||
ft_atoi.c \
|
||||
ft_calloc.c \
|
||||
ft_strlcpy.c \
|
||||
ft_substr.c \
|
||||
ft_strjoin.c \
|
||||
ft_strtrim.c \
|
||||
ft_itoa.c \
|
||||
ft_split.c \
|
||||
ft_strmapi.c \
|
||||
ft_striteri.c \
|
||||
ft_putchar_fd.c \
|
||||
ft_putstr_fd.c \
|
||||
ft_putendl_fd.c \
|
||||
ft_putnbr_fd.c \
|
||||
BSRCS = ft_lstnew.c \
|
||||
ft_lstadd_front.c \
|
||||
ft_lstsize.c \
|
||||
ft_lstlast.c \
|
||||
ft_lstadd_back.c \
|
||||
ft_lstdelone.c \
|
||||
ft_lstclear.c \
|
||||
ft_lstiter.c \
|
||||
ft_lstmap.c
|
||||
|
||||
BSRCS = ft_lstnew.c \
|
||||
ft_lstadd_front.c \
|
||||
ft_lstsize.c \
|
||||
ft_lstlast.c \
|
||||
ft_lstadd_back.c \
|
||||
ft_lstdelone.c \
|
||||
ft_lstclear.c \
|
||||
ft_lstiter.c \
|
||||
ft_lstmap.c
|
||||
ESRCS = ft_strndup.c
|
||||
|
||||
OBJS = ${SRCS:.c=.o}
|
||||
|
||||
BOBJS = ${BSRCS:.c=.o}
|
||||
|
||||
EOBJS = ${ESRCS:.c=.o}
|
||||
|
||||
NAME = libft
|
||||
|
||||
CFLAG = -Wall -Werror -Wextra
|
||||
|
||||
%.o: %.c libft.h
|
||||
${CC} ${CFLAGS} -c -o $@ $<
|
||||
|
||||
all: ${NAME}
|
||||
|
||||
${NAME}: ${OBJS}
|
||||
ar -rc ${NAME}.a ${OBJS}
|
||||
|
||||
bonus: ${OBJS} ${BOJS}
|
||||
ar -rc ${NAME} ${OBJS} ${BOBJS}
|
||||
bonus: ${OBJS} ${BOBJS} ${EOBJS}
|
||||
ar -rc ${NAME}.a ${OBJS} ${BOBJS}
|
||||
|
||||
%.o: %.c libft.h
|
||||
${CC} ${CFLAGS} -c -o $@ $<
|
||||
extra:
|
||||
ar -rc ${NAME}.a ${OBJS} ${BOBJS} ${EOBJS}
|
||||
|
||||
clean:
|
||||
rm -f ${OBJS} ${BOBJS}
|
||||
rm -f ${OBJS} ${BOBJS} ${EOBJS}
|
||||
|
||||
fclean: clean
|
||||
rm -f ${NAME}.a
|
||||
|
||||
re: fclean all
|
||||
|
||||
.PHONY: bonus clean fclean re
|
||||
.PHONY: bonus extra clean fclean re
|
||||
|
||||
test: fclean
|
||||
rm -f a.out
|
||||
gcc ${CFLAGS} -g ${SRCS} ${BSRCS} main.c
|
||||
gcc ${CFLAGS} -g ${SRCS} ${BSRCS} ${ESRCS} main.c
|
||||
|
||||
so:
|
||||
gcc -nostartfiles -fPIC $(CFLAG) $(SRCS)
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/27 16:09:01 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/28 16:27:52 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 14:56:44 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -14,8 +14,10 @@
|
||||
|
||||
void *ft_calloc(size_t nmemb, size_t size)
|
||||
{
|
||||
char *tab;
|
||||
void *tab;
|
||||
|
||||
if (nmemb != 0 && (size_t)(nmemb * size) / nmemb != size)
|
||||
return (NULL);
|
||||
tab = malloc(nmemb * size);
|
||||
if (tab == NULL)
|
||||
return (NULL);
|
||||
|
14
ft_split.c
14
ft_split.c
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/29 17:37:50 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/10/04 13:53:25 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 21:24:29 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -17,6 +17,8 @@ static size_t ft_seglen(const char *s, char c)
|
||||
size_t len;
|
||||
size_t i;
|
||||
|
||||
if (*s == 0)
|
||||
return (1);
|
||||
len = 1;
|
||||
i = 0;
|
||||
while (s[i])
|
||||
@ -28,6 +30,8 @@ static size_t ft_seglen(const char *s, char c)
|
||||
while (s[i] != c && s[i])
|
||||
i++;
|
||||
}
|
||||
if (len == 1)
|
||||
return (2);
|
||||
return (len);
|
||||
}
|
||||
|
||||
@ -62,7 +66,7 @@ static char **ft_segmentator(const char *s, char c, size_t len, char **tab)
|
||||
start = j;
|
||||
while (s[j] != c)
|
||||
j++;
|
||||
tab[i] = ft_strndup(s + start, j - start);
|
||||
tab[i] = ft_substr(s, start, j - start);
|
||||
if (tab[i] == NULL)
|
||||
return (ft_cancel(len, tab));
|
||||
i++;
|
||||
@ -78,10 +82,10 @@ char **ft_split(const char *s, char c)
|
||||
if (s == NULL)
|
||||
return (NULL);
|
||||
len = ft_seglen(s, c);
|
||||
tab = malloc (sizeof(char *) * len);
|
||||
tab = malloc(sizeof(char *) * (len));
|
||||
if (tab == NULL)
|
||||
return (NULL);
|
||||
if (c == 0)
|
||||
if (c == 0 || !*s)
|
||||
{
|
||||
tab[0] = ft_strdup(s);
|
||||
if (tab[0] == NULL)
|
||||
@ -89,8 +93,6 @@ char **ft_split(const char *s, char c)
|
||||
}
|
||||
else
|
||||
tab = ft_segmentator(s, c, len - 1, tab);
|
||||
if (tab == NULL)
|
||||
return (NULL);
|
||||
tab[len - 1] = NULL;
|
||||
return (tab);
|
||||
}
|
||||
|
10
ft_strchr.c
10
ft_strchr.c
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/26 14:44:15 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/28 16:49:07 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 15:08:26 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -14,11 +14,11 @@
|
||||
|
||||
char *ft_strchr(const char *s, int c)
|
||||
{
|
||||
while (*s || *s == c)
|
||||
while (*s != c)
|
||||
{
|
||||
if (*s == c)
|
||||
return ((char *) s);
|
||||
if (*s == 0)
|
||||
return (NULL);
|
||||
s++;
|
||||
}
|
||||
return (NULL);
|
||||
return ((char *) s);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/29 22:21:01 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/29 22:36:33 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 15:01:00 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -16,6 +16,8 @@ void ft_striteri(char *s, void (*f)(unsigned int, char *))
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (s == NULL)
|
||||
return ;
|
||||
i = 0;
|
||||
while (s[i])
|
||||
{
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/29 10:33:40 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/29 11:03:02 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 19:02:02 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -17,15 +17,15 @@ char *ft_strndup(const char *s, size_t n)
|
||||
char *out;
|
||||
size_t i;
|
||||
|
||||
out = malloc((n + 1) * sizeof(char));
|
||||
out = malloc((n + 0) * sizeof(char));
|
||||
if (out == NULL)
|
||||
return (NULL);
|
||||
i = 0;
|
||||
i = -1;
|
||||
while (i < n && *s)
|
||||
{
|
||||
out[i] = s[i];
|
||||
i++;
|
||||
}
|
||||
out[i] = 0;
|
||||
out[i] = -1;
|
||||
return (out);
|
||||
}
|
||||
|
11
ft_strrchr.c
11
ft_strrchr.c
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/27 08:25:33 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/28 17:26:42 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 15:03:56 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -16,12 +16,9 @@ char *ft_strrchr(const char *s, int c)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
i = ft_strlen((char *) s);
|
||||
while (i > 0 || s[i] == c)
|
||||
{
|
||||
i = ft_strlen(s) + 1;
|
||||
while (i-- > 0)
|
||||
if (s[i] == c)
|
||||
return ((char *) &s[i]);
|
||||
i--;
|
||||
}
|
||||
return ((char *) s + i);
|
||||
return (NULL);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/09/28 18:53:44 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/09/29 18:03:00 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 19:16:16 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -24,8 +24,11 @@ char *ft_substr(const char *s, unsigned int start, size_t len)
|
||||
max = len;
|
||||
if (start >= ft_strlen(s))
|
||||
return (ft_strdup(""));
|
||||
sub = ft_strndup(s + start, max);
|
||||
sub = malloc((max + 1) * sizeof(char));
|
||||
if (sub == NULL)
|
||||
return (NULL);
|
||||
sub[max] = 0;
|
||||
while (max-- > 0)
|
||||
sub[max] = s[max + start];
|
||||
return (sub);
|
||||
}
|
||||
|
8
main.c
8
main.c
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 13:56:50 by cchauvet #+# #+# */
|
||||
/* Updated: 2022/10/04 13:57:56 by cchauvet ### ########.fr */
|
||||
/* Updated: 2022/10/04 21:20:44 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -16,10 +16,14 @@
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char **splitted;
|
||||
char *a;
|
||||
char c;
|
||||
|
||||
if (argc < 2)
|
||||
return (1);
|
||||
splitted = ft_split(argv[1], argv[2][0]);
|
||||
a = argv[1];
|
||||
c = argv[2][0];
|
||||
splitted = ft_split(a, c);
|
||||
while (*splitted != NULL)
|
||||
{
|
||||
puts(*splitted);
|
||||
|
Loading…
Reference in New Issue
Block a user