diff options
Diffstat (limited to 'libft/ft_strjoin.c')
-rw-r--r-- | libft/ft_strjoin.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libft/ft_strjoin.c b/libft/ft_strjoin.c new file mode 100644 index 0000000..30447d1 --- /dev/null +++ b/libft/ft_strjoin.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kdx <kdx @student.42angouleme.fr +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/09/28 07:29:30 by kdx #+# #+# */ +/* Updated: 2022/10/14 02:28:15 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) + { + s2_len -= 1; + ptr[s1_len + s2_len] = s2[s2_len]; + } + while (s1_len > 0) + { + s1_len -= 1; + ptr[s1_len] = s1[s1_len]; + } + return (ptr); +} |