substr

유제민·2025년 4월 10일

42경산

목록 보기
9/17

substr 뭐예여

문자열 일부분을 잘라내서 새로운 문자열을 만드는 함수

함수 원형: char ft_substr(char const s, unsigned int start, size_t len);
char const *s: 원본 문자열
unsigned int start: 잘라낸 시작 인덱스
size_t len: 잘라낼 길이 (문자 개수)
반환값: 새로 할당된 문자열
문자열에서 start 인덱스부터 len만큼 잘라서 새 메모리에 복사해주는 함수

ft_substr 구현

#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);
}
profile
무진장 게으른

0개의 댓글