ft_strtrim

jaehlee·2025년 4월 27일

Libft

목록 보기
12/26

1. ft_strtrim이란?


문자열 s1 앞, 뒤로 set에 포함되어 있는 문자를 제거한 문자열을 리턴해주는 함수이다.

2. 함수 프로토타입

char	*ft_strtrim(char const *s1, char const *set)

3. 함수 구현

#include "libft.h"

char	*ft_strtrim(char const *s1, char const *set)
{
	size_t	front;
	size_t	rear;
	char	*str;

	str = 0;
	if (s1 != 0 && set != 0)
	{
		front = 0;
		rear = ft_strlen(s1);
		while (s1[front] && ft_strchr(set, s1[front]))
			front++;
		while (s1[rear - 1] && ft_strchr(set, s1[rear -1]) && rear > front)
			rear--;
		str = (char *)malloc(sizeof(char) * (rear - front + 1));
		if (str)
			ft_strlcpy(str, &s1[front], rear - front + 1);
	}
	return (str);
}

문자열 앞뒤로 ft_strchr 함수를 이용하여 front와 rear를 설정해주고 ft_strlcpy를 이용해서 front부터 rear-start+1까지 str에 넣어준 뒤 str 주소를 리턴해준다.
rear-start+1을 하는 이유는 +1을 해서 문자열 끝에 널문자를 넣어줘야 하기 때문이다.

사용예시

int main(void)
{
	char *s1;
	char *set;
	char *result;

	s1 = "+++Hello World***";
	set = "+*";
	result = ft_strtrim(s1, set);
	printf("Result 1: \"%s\"\n", result); // 기대 출력: "Hello World"
	free(result);
    return 0;
}
profile
공부하는 개발자

0개의 댓글