From 88d69ebcea42619d4d1b83e482422f6c5ee595ed Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Wed, 3 May 2023 11:11:04 +0000 Subject: [PATCH] add: extra function --- libftx/extra/Makefile | 4 +-- libftx/extra/extra.h | 43 ++++++++++++++++-------------- libftx/extra/ft_atoul.c | 38 +++++++++++++++++++++++++++ libftx/extra/ft_atoul_check.c | 32 +++++++++++++++++++++++ libftx/extra/ft_contain_only.c | 6 ++--- libftx/extra/ft_is_in.c | 4 +-- libftx/extra/ft_tablen.c | 4 +-- libftx/libftx.h | 48 +++++----------------------------- 8 files changed, 108 insertions(+), 71 deletions(-) create mode 100644 libftx/extra/ft_atoul.c create mode 100644 libftx/extra/ft_atoul_check.c diff --git a/libftx/extra/Makefile b/libftx/extra/Makefile index 6ae9605..e90e814 100644 --- a/libftx/extra/Makefile +++ b/libftx/extra/Makefile @@ -6,13 +6,13 @@ # By: cchauvet # include +#include # include # include # include "../libft/libft.h" -size_t ft_tablen(const char **tab); -char *ft_ultoa_base(unsigned long long n, char *base); -char *get_next_line(int fd); -size_t ft_random_generator(size_t start, size_t stop); -void ft_freer_tab_ultimate(size_t len, ...); -void ft_freer_ultimate(size_t len, ...); -char *ft_strgen(char c, size_t len); -char *ft_strfjoin(char *s1, char *s2); -char *ft_strmerger(size_t arg_len, ...); -int ft_is_in(char *str, char c); -char **ft_tabrealloc(char **tab, size_t current_size, size_t new_size); -char *ft_strndup(const char *src, size_t n); -ssize_t ft_strchri(char *str, char c); -int ft_contain_only_str(char *str, char *to_find); -int ft_contain_only(char *str, char c); -int ft_strcmp(const char *s1, const char *s2); -void ft_swap(void *a, void *b); -void ft_swap_int(int *a, int *b); -void ft_swap_char(char *a, char *b); +unsigned long ft_atoul(const char str[]); +int ft_atoul_check(const char str[]); +size_t ft_tablen(const void **tab); +char *ft_ultoa_base(unsigned long long n, char *base); +char *get_next_line(int fd); +size_t ft_random_generator(size_t start, size_t stop); +void ft_freer_tab_ultimate(size_t len, ...); +void ft_freer_ultimate(size_t len, ...); +char *ft_strgen(char c, size_t len); +char *ft_strfjoin(char *s1, char *s2); +char *ft_strmerger(size_t arg_len, ...); +int ft_is_in(const char *str, char c); +char **ft_tabrealloc(char **tab, size_t current_size, size_t new_size); +char *ft_strndup(const char *src, size_t n); +ssize_t ft_strchri(char *str, char c); +int ft_contain_only_str(const char *str, const char *to_find); +int ft_contain_only(const char *str, char c); +int ft_strcmp(const char *s1, const char *s2); +void ft_swap(void *a, void *b); +void ft_swap_int(int *a, int *b); +void ft_swap_char(char *a, char *b); #endif diff --git a/libftx/extra/ft_atoul.c b/libftx/extra/ft_atoul.c new file mode 100644 index 0000000..e98af1b --- /dev/null +++ b/libftx/extra/ft_atoul.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoul.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet = '0' && str[i] <= '9') + { + out = out * 10 + str[i] - 48; + i++; + } + return (out * sign); +} diff --git a/libftx/extra/ft_atoul_check.c b/libftx/extra/ft_atoul_check.c new file mode 100644 index 0000000..fa834ce --- /dev/null +++ b/libftx/extra/ft_atoul_check.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoul_check.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet '9' || str[i] < '0') + return (0); + if (num > num * 10 + str[i] - '0') + return (0); + num = num * 10 + str[i] - 48; + i++; + } + return (1); +} diff --git a/libftx/extra/ft_contain_only.c b/libftx/extra/ft_contain_only.c index 4844e79..f2b3143 100644 --- a/libftx/extra/ft_contain_only.c +++ b/libftx/extra/ft_contain_only.c @@ -6,13 +6,13 @@ /* By: cchauvet # include # include "./libft/libft.h" +# include "./extra/extra.h" -size_t ft_tablen(const char **tab); +size_t ft_tablen(const void **tab); char *ft_ultoa_base(unsigned long long n, char *base); int ft_printf(const char *format, ...); int ft_eprintf(const char *format, ...); @@ -28,10 +29,10 @@ size_t ft_random_generator(size_t start, size_t stop); void ft_freer_tab_ultimate(size_t len, ...); void ft_freer_ultimate(size_t len, ...); char *ft_strgen(char c, size_t len); -int ft_is_in(char *str, char c); +int ft_is_in(const char *str, char c); char **ft_tabrealloc(char **tab, size_t current_size, size_t new_size); -int ft_contain_only_str(char *str, char *to_find); -int ft_contain_only(char *str, char c); +int ft_contain_only_str(const char *str, const char *to_find); +int ft_contain_only(const char *str, char c); char *ft_strfjoin(char *s1, char *s2); char *ft_strmerger(size_t arg_len, ...); int ft_strcmp(const char *s1, const char *s2); @@ -41,41 +42,4 @@ void ft_swap(void *a, void *b); void ft_swap_int(int *a, int *b); void ft_swap_char(char *a, char *b); -/* void *ft_cancel(void **tab, size_t len); */ -/* int ft_atoi(const char *nptr); */ -/* void ft_bzero(void *s, size_t n); */ -/* 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); */ -/* int ft_isprint(int c); */ -/* void *ft_memchr(const void *s, int c, size_t n); */ -/* int ft_memcmp(const void *s1, const void *s2, size_t n); */ -/* void *ft_memcpy(void *dest, const void *src, size_t n); */ -/* void *ft_memmove(void *dest, const void *src, size_t n); */ -/* void *ft_memset(void *s, int c, size_t n); */ -/* char *ft_strchr(const char *s, int c); */ -/* char *ft_strdup(const char *s); */ -/* size_t ft_strlcat(char *dst, const char *src, size_t size); */ -/* size_t ft_strlcpy(char *dst, const char *src, size_t size); */ -/* size_t ft_strlen(const char *s); */ -/* int ft_strncmp(const char *s1, const char *s2, size_t n); */ -/* char *ft_strnstr(const char *big, const char *little, size_t len); */ -/* char *ft_strrchr(const char *s, int c); */ -/* int ft_tolower(int c); */ -/* int ft_toupper(int c); */ - -/* char *ft_substr(char const *s, unsigned int start, size_t len); */ -/* char *ft_strjoin(char const *s1, char const *s2); */ -/* char *ft_strtrim(char const *s1, char const *set); */ -/* char **ft_split(char const *s, char c); */ -/* char *ft_itoa(int n); */ -/* char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); */ -/* void ft_striteri(char *s, void (*f)(unsigned int, char*)); */ -/* void ft_putchar_fd(char c, int fd); */ -/* void ft_putstr_fd(char *s, int fd); */ -/* void ft_putendl_fd(char *s, int fd); */ -/* void ft_putnbr_fd(int n, int fd); */ - #endif