diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-09-10 19:53:00 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-09-10 19:53:00 +0200 |
commit | 89c27ba72e11665823cba7023f694a8639891ccb (patch) | |
tree | dfdd9771eb2e4bb2ae5d354424350a8edcfbd43b /libft | |
parent | I was born an idiot I swear (diff) | |
download | 42-minishell-89c27ba72e11665823cba7023f694a8639891ccb.tar.gz 42-minishell-89c27ba72e11665823cba7023f694a8639891ccb.tar.bz2 42-minishell-89c27ba72e11665823cba7023f694a8639891ccb.tar.xz 42-minishell-89c27ba72e11665823cba7023f694a8639891ccb.tar.zst 42-minishell-89c27ba72e11665823cba7023f694a8639891ccb.zip |
New libft func, cool stuff
Diffstat (limited to 'libft')
-rw-r--r-- | libft/Makefile | 1 | ||||
-rw-r--r-- | libft/include/libft.h | 5 | ||||
-rw-r--r-- | libft/src/ft_strsubst_s.c | 31 |
3 files changed, 36 insertions, 1 deletions
diff --git a/libft/Makefile b/libft/Makefile index 431ec0b..3c11199 100644 --- a/libft/Makefile +++ b/libft/Makefile @@ -112,6 +112,7 @@ SRCS_NAME += ft_printf_process.c SRCS_NAME += ft_printf_cat_output.c SRCS_NAME += ft_printf_flag_to_atoi.c SRCS_NAME += ft_strsubst.c +SRCS_NAME += ft_strsubst_s.c #------------------------------------------------------------------------------# SRCS = $(addprefix ${SRCS_DIR},${SRCS_NAME}) #------------------------------------------------------------------------------# diff --git a/libft/include/libft.h b/libft/include/libft.h index 68b8d9b..c31482c 100644 --- a/libft/include/libft.h +++ b/libft/include/libft.h @@ -15,7 +15,7 @@ #include <stddef.h> #include <stdarg.h> -#include <inttypes.h> +#include <stdint.h> # define FT_MIN_HEX_BASE "0123456789abcdef" # define FT_MAJ_HEX_BASE "0123456789ABCDEF" @@ -123,6 +123,9 @@ char *ft_nstr(size_t size); char *ft_strsubst(char *str, const char *pattern, const char *subst); +int8_t ft_strsubst_s(char *str, + const char *pattern, + const char *subst); char *ft_strtok_r(char *s, const char *delim, char **last); char *ft_strtok(char *s, const char *delim); char **ft_split(const char *s, char c); diff --git a/libft/src/ft_strsubst_s.c b/libft/src/ft_strsubst_s.c new file mode 100644 index 0000000..ea61610 --- /dev/null +++ b/libft/src/ft_strsubst_s.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strsubst_s.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ +/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include <libft.h> +#include <stdint.h> +#include <stdlib.h> + +int8_t + ft_strsubst_s(char *str, const char *pattern, const char *subst) +{ + char *ptr; + + if ((ptr = ft_strnstr(str, pattern, ft_strlen(str))) == NULL) + return (1); + (void)ft_memmove(str + ((ptr - str) + ft_strlen(subst)), + str + ((ptr - str) + ft_strlen(pattern)), + ft_strlen(str + ((ptr - str) + ft_strlen(pattern))) + 1); + (void)ft_memmove(str + (ptr - str), + subst, + ft_strlen(subst)); + return (0); +} |