diff --git a/Makefile b/Makefile index fe010d5..4dab60b 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: adjoly +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/01 11:03:22 by adjoly #+# #+# # -# Updated: 2024/02/08 16:49:00 by adjoly ### ########.fr # +# Updated: 2024/02/15 13:55:20 by adjoly ### ########.fr # # # # **************************************************************************** # @@ -45,6 +45,7 @@ SRCS = is/ft_isalnum.c \ print/ft_putstr.c \ print/ft_putstr_fd.c \ str/ft_atoi.c \ + str/ft_atoll.c \ str/ft_itoa.c \ str/ft_split.c \ str/ft_strchr.c \ diff --git a/libft.h b/libft.h index c8189c4..fa69898 100644 --- a/libft.h +++ b/libft.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 10:06:03 by adjoly #+# #+# */ -/* Updated: 2024/02/08 16:50:59 by adjoly ### ########.fr */ +/* Updated: 2024/02/15 13:55:01 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,67 +26,68 @@ typedef struct s_list struct s_list *next; } t_list; -int ft_atoi(const char *nptr); -void *ft_calloc(size_t nmemb, size_t size); -int ft_isalnum(int c); -int ft_isalpha(int c); -int ft_isascii(int c); -int ft_isdigit(int c); -void ft_bzero(void *s, size_t n); -void *ft_memset(void *s, int c, size_t n); -void *ft_memmove(void *dest, const void *src, size_t n); -void *ft_memcpy(void *dest, const void *src, size_t n); -void ft_putchar_fd(char c, int fd); -void ft_putnbr_fd(int n, int fd); -char *ft_strdup(const char *s); -void ft_putstr_fd(char *s, int fd); -char *ft_strchr(const char *s, int c); -size_t ft_strlcpy(char *dst, const char *src, size_t size); -size_t ft_strlen(const char *s); -char *ft_substr(char const *s, unsigned int start, size_t len); -int ft_tolower(int c); -int ft_toupper(int c); -size_t ft_strlcat(char *dst, const char *src, size_t size); -char *ft_strjoin(char const *s1, char const *s2); -int ft_strncmp(const char *s1, const char *s2, size_t n); -int ft_isprint(int c); -void *ft_memchr(const void *s, int c, size_t n); -char *ft_itoa(int n); -void *ft_memmove(void *dest, const void *src, size_t n); -void *ft_memchr(const void *s, int c, size_t n); -int ft_memcmp(const void *s1, const void *s2, size_t n); -char *ft_strrchr(const char *s, int c); -char *ft_strnstr(const char *big, const char *little, size_t len); -void ft_putendl_fd(char *s, int fd); -char *ft_strtrim(char const *s1, char const *set); -char **ft_split(char const *s, char c); -char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); -void ft_striteri(char *s, void (*f)(unsigned int, char *)); +long long ft_atoll(const char *nptr); +int ft_atoi(const char *nptr); +void *ft_calloc(size_t nmemb, size_t size); +int ft_isalnum(int c); +int ft_isalpha(int c); +int ft_isascii(int c); +int ft_isdigit(int c); +void ft_bzero(void *s, size_t n); +void *ft_memset(void *s, int c, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void ft_putchar_fd(char c, int fd); +void ft_putnbr_fd(int n, int fd); +char *ft_strdup(const char *s); +void ft_putstr_fd(char *s, int fd); +char *ft_strchr(const char *s, int c); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlen(const char *s); +char *ft_substr(char const *s, unsigned int start, size_t len); +int ft_tolower(int c); +int ft_toupper(int c); +size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strjoin(char const *s1, char const *s2); +int ft_strncmp(const char *s1, const char *s2, size_t n); +int ft_isprint(int c); +void *ft_memchr(const void *s, int c, size_t n); +char *ft_itoa(int n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +char *ft_strrchr(const char *s, int c); +char *ft_strnstr(const char *big, const char *little, size_t len); +void ft_putendl_fd(char *s, int fd); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_striteri(char *s, void (*f)(unsigned int, char *)); -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 *)); +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 *)); -void ft_putchar(char c); -void ft_putstr(char *s); -void ft_putnbrbase_fd(int n, char *base, int fd); -void ft_putnbrbase(int n, char *base); -void ft_putnbr(int n); +void ft_putchar(char c); +void ft_putstr(char *s); +void ft_putnbrbase_fd(int n, char *base, int fd); +void ft_putnbrbase(int n, char *base); +void ft_putnbr(int n); -int ft_printf(const char *format, ...); -int ft_printconversion(char conversion, va_list args); -int ft_putnbrulong(unsigned int n); -int ft_putaddr(void *ptr); -int ft_putstr_p(char *s); -int ft_putnbrbase_p(unsigned long int n, char *base); -int ft_putnbrbase_pf(unsigned int n, char *base); -int ft_putchar_p(char c); -int ft_putnbr_p(int n); -size_t ft_strlen(const char *s); +int ft_printf(const char *format, ...); +int ft_printconversion(char conversion, va_list args); +int ft_putnbrulong(unsigned int n); +int ft_putaddr(void *ptr); +int ft_putstr_p(char *s); +int ft_putnbrbase_p(unsigned long int n, char *base); +int ft_putnbrbase_pf(unsigned int n, char *base); +int ft_putchar_p(char c); +int ft_putnbr_p(int n); +size_t ft_strlen(const char *s); #endif diff --git a/str/ft_atoll.c b/str/ft_atoll.c new file mode 100644 index 0000000..276e497 --- /dev/null +++ b/str/ft_atoll.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoll.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/10/31 09:00:27 by adjoly #+# #+# */ +/* Updated: 2024/02/15 13:49:15 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +long long ft_atoll(const char *nptr) +{ + char sign; + long long nbr; + + sign = 1; + nbr = 0; + while ((*nptr >= 7 && *nptr <= 13) || *nptr == 32) + nptr++; + if (*nptr == '-') + { + sign *= -1; + nptr++; + } + else if (*nptr == '+') + nptr++; + while (*nptr >= '0' && *nptr <= '9') + { + nbr = nbr * 10 + (*nptr - '0'); + nptr++; + } + return (nbr * sign); +}