minishell
ft_strjoin.c
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* ft_strjoin.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2022/04/18 04:49:14 by kfujita #+# #+# */
9 /* Updated: 2022/04/26 00:15:06 by kfujita ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #include "../ft_mem/ft_mem.h"
14 #include "ft_string.h"
15 #include <stdlib.h>
16 
17 char *ft_strjoin(char const *s1, char const *s2)
18 {
19  size_t s1_len;
20  size_t s2_len;
21  char *p_ret;
22 
23  if (s1 == NULL)
24  s1_len = 0;
25  else
26  s1_len = ft_strlen(s1);
27  if (s2 == NULL)
28  s2_len = 0;
29  else
30  s2_len = ft_strlen(s2);
31  p_ret = malloc(s1_len + s2_len + 1);
32  if (p_ret == NULL)
33  return (NULL);
34  ft_memmove(p_ret, s1, s1_len);
35  ft_memmove(p_ret + s1_len, s2, s2_len);
36  p_ret[s1_len + s2_len] = '\0';
37  return (p_ret);
38 }
void * ft_memmove(void *dst, const void *src, size_t n)
Definition: ft_memmove.c:16
size_t ft_strlen(const char *s)
Definition: ft_strlen.c:15
char * ft_strjoin(char const *s1, char const *s2)
Definition: ft_strjoin.c:17