ft_strjoin.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* ft_strjoin.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: ll-hotel <ll-hotel@student.42lyon.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2023/11/07 20:08:01 by ll-hotel #+# #+# */ 9 /* Updated: 2024/04/19 16:15:51 by ll-hotel ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "ft_basics.h" 14 #include <stdlib.h> 15 16 static size_t _strlen(const char *s) 17 { 18 size_t l; 19 20 l = 0; 21 if (s) 22 while (s[l]) 23 l++; 24 return (l); 25 } 26 27 char *ft_strjoin(const char *s1, const char *s2) 28 { 29 char *str; 30 size_t s1_len; 31 size_t s2_len; 32 33 if (!s1 && !s2) 34 return (NULL); 35 s1_len = _strlen(s1); 36 s2_len = _strlen(s2); 37 str = malloc(sizeof(char) * (s1_len + s2_len + 1)); 38 if (!str) 39 return (NULL); 40 if (s1) 41 ft_memmove(str, s1, s1_len); 42 if (s2) 43 ft_memmove(str + s1_len, s2, s2_len); 44 str[s1_len + s2_len] = 0; 45 return (str); 46 }