ft_strnstr

jen133·2022년 1월 15일
0

libft

목록 보기
21/44

💻 ft_strnstr

haystack문자열에서 len크기만큼을 탐색하며 needle문자열이 있는지 찾는 함수

📃 ft_strnstr 원형

char	*ft_strnstr(const char *haystack, const char *needle, size_t len)

🔩 parameters

*haystack : 탐색할 문자열
*needle : 찾을 문자열
len : 문자열을 탐색할 크기

📬 return

char *형 반환

  • needle문자열이 빈 문자열이라면 haystack문자열을 바로 반환
  • haystack문자열을 len만큼 탐색도중 len문자열을 찾는다면 haystack에서 len문자열과 일치하는 시작점의 주소를 반환
  • 문자열을 탐색도중 len을 찾지못했다면 NULL을 반환

🧨 주의사항

len을 찾았다면 haystack에서 len문자열과 같은 부분의 시작주소를 반환해주어야 함

⌨ 코드


#include "libft.h"

char	*ft_strnstr(const char *haystack, const char *needle, size_t len)
{
	size_t	i;
	size_t	j;

	i = 0;
	j = 0;
	if (needle[0] == '\0')
		return ((char *)haystack + i);
	while (i < len && haystack[i] != '\0')
	{
		if (haystack[i] == needle[0])
		{
			while (haystack[i + j] == needle[j] && (i + j) < len \
           && haystack[i + j] != '\0')
				j++;
			if (needle[j] == '\0')
				return ((char *)haystack + i);
		}
		j = 0;
		i++;
	}
	return (NULL);
}

profile
늅늅

0개의 댓글