substr 뭐예여
문자열 일부분을 잘라내서 새로운 문자열을 만드는 함수
함수 원형: char ft_substr(char const s, unsigned int start, size_t len);
char const *s: 원본 문자열
unsigned int start: 잘라낸 시작 인덱스
size_t len: 잘라낼 길이 (문자 개수)
반환값: 새로 할당된 문자열
문자열에서 start 인덱스부터 len만큼 잘라서 새 메모리에 복사해주는 함수
#include "libft.h"
char *ft_substr(char const *s, unsigned int start, size_t len)
{
size_t s_len;
size_t copy_len;
char *substr;
if (!s)
return (NULL);
s_len = ft_strlen(s); //원본 문자열 길이 넣기
if (start >= s_len)
return (ft_strdup("")); //시작 위치가 문자열 길이를 넘는다면 빈 문자열을 리턴
copy_len = s_len - start; //복사할 길이는 원본 문자열 길이 - 잘라낼 문자열 길이
if (copy_len > len) //사용자가 원하는 len보다 크면 len으로 자른다.
copy_len = len;
substr = (char *)malloc(copy_len + 1); // 복사할 길이 + NULL 문자 고려
if (!substr)
return (NULL);
ft_strlcpy(substr, s + start, copy_len + 1); //strlcpy를 이용하여 copy_len 글자를 복사하고 마지막에 NULL문자 채워주기
return (substr);
}