ft_strjoin - chanhl22/libft GitHub Wiki
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* ft_strjoin.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: chanhlee <[email protected].> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2021/01/23 19:16:51 by chanhlee #+# #+# */
9 /* Updated: 2021/02/02 12:49:34 by chanhlee ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12
13 #include "libft.h"
14
15 char *ft_strjoin(char const *s1, char const *s2)
16 {
17 char *str;
18 int s1_len;
19 int s2_len;
20
21 if (!s1 || !s2) // NULL 체크
22 return (NULL);
23 s1_len = ft_strlen(s1); // 길이 담아줌
24 s2_len = ft_strlen(s2);
25 if (!(str = (char*)malloc(sizeof(char) * (s1_len + s2_len + 1)))) // 할당, 실패하면 NULL
26 return (NULL);
27 ft_memcpy(str, s1, s1_len); // str로 메모리 복사
28 ft_memcpy(str + s1_len, s2, s2_len);
29 str[s1_len + s2_len] = '\0'; //마지막에 널값 넣어줌
30 return (str);
31 }
원래 while로 풀었으나 예외처리의 실수로 메모리 복사함수로 처리