📌ft_substr
문자열 s의 start위치부터 len의 길이만큼 저장해서 주소반환
char *ft_substr(char const *s, unsigned int start, size_t len);
➕ 매개변수 (Parameters)
s
: 복사할 원본 문자열의 주소start
: 원본 문자열을 자를 시작 위치len
: 복사할 길이
➕ 반환값 (Return)
char *
: 복사한 문자열의 주소 반환
➕ 설명 (Description)
➕ 코드 (Code)
#include "libft.h"
char *ft_substr(char const *s, unsigned int start, size_t len)
{
char *tmp;
size_t i;
i = 0;
if (!s)
return (0);
if (start >= ft_strlen(s))
{
if (!(tmp = malloc(1)))
return (0);
tmp[0] = '\0';
return (tmp);
}
if (!(tmp = malloc(len + 1)))
return (0);
while (i < len && s[start + i])
{
tmp[i] = s[start + i];
i++;
}
tmp[i] = '\0';
return (tmp);
}
📌ft_strjoin
s1과 s2를 합쳐서 그 주소를 반환
char *ft_strjoin(char const *s1, char const *s2);
➕ 매개변수 (Parameters)
s1
: 합칠 첫번째 문자열s2
: 합칠 두번째 문자열
➕ 반환값 (Return)
char *
: 합친 문자열의 주소 반환
➕ 설명 (Description)
➕ 코드 (Code)
#include "libft.h"
char *ft_strjoin(char const *s1, char const *s2)
{
char *tmp;
int i;
i = 0;
if (!s1 && s2)
return (ft_strdup(s2));
else if (s1 && !s2)
return (ft_strdup(s1));
else if (s1 && s2)
{
if (!(tmp = malloc(ft_strlen(s1) + ft_strlen(s2) + 1)))
return (0);
while (*s1)
tmp[i++] = *(s1++);
while (*s2)
tmp[i++] = *(s2++);
tmp[i] = '\0';
}
else
return (0);
return (tmp);
}
반응형
'➰ 코딩 부트캠프 > 42 seoul' 카테고리의 다른 글
[0 Circle] Libft - ft_itoa, ft_strmapi (0) | 2021.01.04 |
---|---|
[0 Circle] Libft - ft_strtrim, ft_split (0) | 2021.01.04 |
[0 Circle] Libft - ft_calloc, ft_strdup (0) | 2021.01.04 |
[0 Circle] Libft - ft_isalpha, ft_isdigit, ft_isalnum, ft_isascii, ft_isprint, ft_toupper, ft_tolower (0) | 2021.01.04 |
[0 Circle] Libft - ft_atoi (0) | 2020.12.24 |