ft_strnstr

nawkim·2021년 5월 26일
0

libft

목록 보기
14/44

1. 프로토타입

char	*ft_strnstr(const char *str, const char *find, size_t len)
  • 헤더
#include <string.h>
  • 형태
char	*strnstr(const char *haystack, const char *needle, size_t len)

2. 용도

3. 리턴값

4. 코드 구현

#include "libft.h"

static int	ft_check(const char *str, const char *find, size_t t)
{
	size_t a;

	a = 0;
	while (find[a] != '\0')
	{
		if (str[t + a] != find[a])
			return (0);
		a++;
	}
	return (1);
}

char		*ft_strnstr(const char *str, const char *find, size_t len)
{
	size_t	t;
	size_t	findsize;
	int		ret;
	char	*test;

	t = 0;
	findsize = 0;
	ret = 0;
	test = (char *)str;
	if (find[0] == '\0')
		return (test);
	if (str[0] == '\0')
		return (NULL);
	findsize = ft_strlen(find);
	while (t + findsize <= len)
	{
		if (test[t] == find[0])
		{
			ret = ft_check(test, find, t);
			if (ret == 1)
				return (&test[t]);
		}
		t++;
	}
	return (NULL);
}

5. 코드 설명

profile
공부 기록.

0개의 댓글