ft_strtrim

jen133·2022년 1월 15일
0

libft

목록 보기
26/44

💻 ft_strtrim

문자열 s1을 처음부터 순회하며 set문자열에 존재하지않는 문자가 나온 곳 부터 set문자열에 속한 문자가 나오지 않은곳까지를 잘라서 반환해주는 함수
ex) s1= "abc12312131def123", set= "abcdef" 이라면 반환값은 "12312131"

📃 ft_strtrim 원형

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

🔩 parameters

*s1 : 탐색할 문자열
*set : 나누는 기준이 되는 문자열

📬 return

char *형 반환

  • 문자열을 잘라준 뒤 malloc으로 저장공간을 할당하고 그곳에 저장한 문자열의 포인터를 반환

🧨 주의사항

  • 문자열 s1에 set에 해당하는 문자가 없다면 \0이 들어있는 문자열의 저장공간을 할당해서 반환해줌, 이때 내가 만든 ft_substr은 s1의 크기보다 start값이 클때 \0이 있는 문자열의 저장공간을 반환해줌
  • 반환될 문자열의 끝에는 \0을 넣어줘야함

⌨ 코드


#include "libft.h"

int	checkchar(char a, char const *b)
{
	int	i;

	i = ft_strlen(b);
	while (i >= 0)
	{
		if (b[i] == a)
			return (1);
		i--;
	}
	return (0);
}

char	*ft_strtrim(char const *s1, char const *set)
{
	char	*str;
	size_t	i;
	size_t	j;

	i = 0;
	j = ft_strlen(s1);
	if (s1 == 0)
		return (0);
	while (s1[i] && checkchar(s1[i], set))
		i++;
	while (s1[j - 1] && checkchar(s1[j], set) && i < j)
		j--;
	str = ft_substr(s1, i, j - i + 1);
	return (str);
}

profile
늅늅

0개의 댓글