char *ft_strtrim(char const *s1, char const *set)
#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;
}