diff options
Diffstat (limited to 'libft/ft_strjoin.c')
-rw-r--r-- | libft/ft_strjoin.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libft/ft_strjoin.c b/libft/ft_strjoin.c new file mode 100644 index 0000000..72512d4 --- /dev/null +++ b/libft/ft_strjoin.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kdx <kdx @student.42angouleme.fr +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/28 07:29:30 by kdx #+# #+# */ +/* Updated: 2022/09/28 07:40:08 by kdx ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char const *s1, char const *s2) +{ + size_t s1_len; + size_t s2_len; + char *ptr; + + if (s1 == NULL || s2 == NULL) + return (NULL); + s1_len = ft_strlen(s1); + s2_len = ft_strlen(s2); + ptr = malloc(s1_len + s2_len + 1); + if (ptr == NULL) + return (NULL); + ptr[s1_len + s2_len] = '\0'; + while (s2_len-- > 0) + ptr[s1_len + s2_len] = s2[s2_len]; + while (s1_len-- > 0) + ptr[s1_len] = s1[s1_len]; + return (ptr); +} |