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으로 중간에 다시 초기화 하는 부분)
ㄴ> 좋은 코드는 아니다.