some fixes

This commit is contained in:
David Gailleton
2025-11-09 19:09:56 +01:00
parent d75e58d763
commit 6e5f588613
5 changed files with 61 additions and 26 deletions

View File

@@ -45,13 +45,27 @@ SRC = ft_isalpha.c \
ft_putendl_fd.c \ ft_putendl_fd.c \
ft_putnbr_fd.c ft_putnbr_fd.c
OBJ_DIR = objs BONUS_SRC = 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
OBJ = $(patsubst %, $(OBJ_DIR)/%o, $(SRC:.c=.)) OBJ = $(SRC:.c=.o)
BONUS_OBJ = $(BONUS_SRC:.c=.o)
all: $(NAME) all: $(NAME)
bonus: $(OBJ) $(BONUS_OBJ)
$(AR) $(ARFLAGS) $(NAME) $(OBJ) $(BONUS_OBJ)
ranlib $(NAME)
$(NAME): $(OBJ) $(NAME): $(OBJ)
$(AR) $(ARFLAGS) $(NAME) $(OBJ) $(AR) $(ARFLAGS) $(NAME) $(OBJ)
ranlib $(NAME) ranlib $(NAME)

View File

@@ -6,7 +6,7 @@
/* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */ /* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/11/05 19:07:51 by dgaillet #+# #+# */ /* Created: 2025/11/05 19:07:51 by dgaillet #+# #+# */
/* Updated: 2025/11/05 20:53:10 by dgaillet ### ########lyon.fr */ /* Updated: 2025/11/09 17:34:56 by dgaillet ### ########lyon.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@@ -6,13 +6,13 @@
/* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */ /* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/11/07 13:06:35 by dgaillet #+# #+# */ /* Created: 2025/11/07 13:06:35 by dgaillet #+# #+# */
/* Updated: 2025/11/07 13:52:20 by dgaillet ### ########lyon.fr */ /* Updated: 2025/11/09 18:47:18 by dgaillet ### ########lyon.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "libft.h" #include "libft.h"
size_t malloc_size(int n) static size_t count_digits(int n)
{ {
size_t size; size_t size;
@@ -27,49 +27,51 @@ size_t malloc_size(int n)
return (size); return (size);
} }
void insert_char(char *str, unsigned int nbr, int index) static void insert_char(char *str, unsigned int nbr, size_t index)
{ {
if (!index) while (nbr)
return ; {
str[index] = (nbr % 10) + '0'; str[index--] = nbr % 10 + '0';
insert_char(str, nbr / 10, index - 1); nbr /= 10;
}
} }
char *ft_itoa(int n) char *ft_itoa(int n)
{ {
unsigned int nbr; unsigned int nbr;
char *str; char *str;
size_t size;
nbr = n; nbr = n;
if (n < 0) if (n < 0)
nbr = n * -1; nbr = n * -1;
str = malloc(sizeof(char) * (malloc_size(n) + 1)); size = count_digits(n);
str = malloc(sizeof(char) * (size + 1));
if (!str) if (!str)
return (NULL); return (NULL);
str[size] = '\0';
if (nbr == 0) if (nbr == 0)
str[0] = '0'; str[0] = '0';
else else
{ {
if (n < 0) if (n < 0)
{
str[0] = '-'; str[0] = '-';
} insert_char(str, nbr, size - 1);
insert_char(str, nbr, malloc_size(n) - 1);
} }
str[malloc_size(n)] = '\0';
return (str); return (str);
} }
/*
#include "stdio.h"
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
char *str; char *str;
if (argc > 1) if (argc > 1)
{ {
str = ft_itoa(atoi(argv[1])); str = ft_itoa(42);
printf("%s\n", str); if (!str)
return (1);
ft_putstr_fd(str, 1);
free(str); free(str);
} }
} }
*/

View File

@@ -6,7 +6,7 @@
/* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */ /* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/11/05 11:20:47 by dgaillet #+# #+# */ /* Created: 2025/11/05 11:20:47 by dgaillet #+# #+# */
/* Updated: 2025/11/05 11:44:56 by dgaillet ### ########lyon.fr */ /* Updated: 2025/11/09 19:08:42 by dgaillet ### ########lyon.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -14,9 +14,13 @@
void *ft_memset(void *s, int c, size_t n) void *ft_memset(void *s, int c, size_t n)
{ {
if (n <= 0) size_t i;
return (s);
*((char *) s) = c; i = 0;
ft_memset(s + 1, c, n - 1); while (i < n)
{
((unsigned char *) s)[i] = c;
i++;
}
return (s); return (s);
} }

17
libft.h
View File

@@ -6,7 +6,7 @@
/* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */ /* By: dgaillet <dgaillet@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/11/05 09:49:43 by dgaillet #+# #+# */ /* Created: 2025/11/05 09:49:43 by dgaillet #+# #+# */
/* Updated: 2025/11/08 17:56:20 by dgaillet ### ########lyon.fr */ /* Updated: 2025/11/09 16:07:05 by dgaillet ### ########lyon.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -15,6 +15,12 @@
# include <stdlib.h> # include <stdlib.h>
typedef struct s_list
{
void *content;
struct s_list *next;
} t_list;
int ft_isalpha(int c); int ft_isalpha(int c);
int ft_isdigit(int c); int ft_isdigit(int c);
int ft_isalnum(int c); int ft_isalnum(int c);
@@ -49,5 +55,14 @@ void ft_putchar_fd(char c, int fd);
void ft_putstr_fd(char *s, int fd); void ft_putstr_fd(char *s, int fd);
void ft_putendl_fd(char *s, int fd); void ft_putendl_fd(char *s, int fd);
void ft_putnbr_fd(int n, int fd); void ft_putnbr_fd(int n, int fd);
t_list *ft_lstnew(void *content);
void ft_lstadd_front(t_list **lst, t_list *new);
int ft_lstsize(t_list *lst);
t_list *ft_lstlast(t_list *lst);
void ft_lstadd_back(t_list **lst, t_list *new);
void ft_lstdelone(t_list *lst, void (*del)(void *));
void ft_lstclear(t_list **lst, void (*del)(void *));
void ft_lstiter(t_list *lst, void (*f)(void *));
t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *));
#endif #endif