ft_strnstr

nhwang·2022년 1월 24일
0

char *ft_strnstr(const char big, const char little, size_t len)

용도 : 문자열 비교

리턴 : 같지 않은 경우에 그때의 주소 리턴.
같으면 첫 글자의 주소
little이 없으면 big의 주소 리턴

구현부 (ncmp활용하여 구현함)

#include "libft.h"

char	*ft_strnstr(const char *big, const char *little, size_t len)
{
	char	*dst;
	char	*src;
	size_t	lendst;
	size_t	lensrc;
	size_t	min;

	dst = (char *)big;
	src = (char *)little;
	lendst = ft_strlen(big);
	lensrc = ft_strlen(little);
	min = lendst;
	if (min > len)
		min = len;
	lendst = 0;
	while (lensrc + lendst <= min)
	{
		if (!ft_strncmp(dst + lendst, little, lensrc))
			return (dst + lendst);
		lendst++;
	}
	return (NULL);
}

*인자로 받은 len보다 dst가 클 경우를 위해 초기화 함.

25줄을 피하기 위해 lendst를 2가지 용도로 써버림 (0으로 중간에 다시 초기화 하는 부분)
ㄴ> 좋은 코드는 아니다.

profile
42Seoul

0개의 댓글