Libft(13) - strnstr

2021. 6. 26. 18:1542seoul/42 Cursus

Libft(13) - strnstr

 

STRSTR(3)                BSD Library Functions Manual                STRSTR(3)

NAME
     strstr, strcasestr, strnstr -- locate a substring in a string

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <string.h>

     char *
     strstr(const char *haystack, const char *needle);

     char *
     strcasestr(const char *haystack, const char *needle);

     char *
     strnstr(const char *haystack, const char *needle, size_t len);

     #include <string.h>
     #include <xlocale.h>

     char *
     strcasestr_l(const char *haystack, const char *needle, locale_t loc);

DESCRIPTION
     The strstr() function locates the first occurrence of the null-terminated string needle in
     the null-terminated string haystack.

     The strcasestr() function is similar to strstr(), but ignores the case of both strings.

     The strnstr() function locates the first occurrence of the null-terminated string needle
     in the string haystack, where not more than len characters are searched.  Characters that
     appear after a `\0' character are not searched.  Since the strnstr() function is a FreeBSD
     specific API, it should only be used when portability is not a concern.

     While the strcasestr() function uses the current locale, the strcasestr_l() function may
     be passed a locale directly. See xlocale(3) for more information.

RETURN VALUES
     If needle is an empty string, haystack is returned; if needle occurs nowhere in haystack,
     NULL is returned; otherwise a pointer to the first character of the first occurrence of
     needle is returned.

EXAMPLES
     The following sets the pointer ptr to the "Bar Baz" portion of largestring:

           const char *largestring = "Foo Bar Baz";
           const char *smallstring = "Bar";
           char *ptr;

           ptr = strstr(largestring, smallstring);

     The following sets the pointer ptr to NULL, because only the first 4 characters of
     largestring are searched:

           const char *largestring = "Foo Bar Baz";
           const char *smallstring = "Bar";
           char *ptr;

           ptr = strnstr(largestring, smallstring, 4);

SEE ALSO
     memchr(3), memmem(3), strchr(3), strcspn(3), strpbrk(3), strrchr(3), strsep(3), strspn(3),
     strtok(3), wcsstr(3), xlocale(3)

STANDARDS
     The strstr() function conforms to ISO/IEC 9899:1990 (``ISO C90'').

BSD                            October 11, 2001                            BSD
  • 널 종료된 문자열 haystack 에서 널 종료된 문자열 needle을 검색해서 haystack 내에서 needle의 처음 주소를 리턴하는데 len 개까지만 검색함.
  • '\0' 이후 문자열은 검색하지 않음.
  • FreeBSD의 특정 API이므로, 이식성이 고려되지 않을 때만 사용해야 함. (FreeBSD에서만 사용되는 것이라 그런 것 같음.)

기본 함수 구조 및 매개변수

     #include <string.h>

     char *
     strnstr(const char *haystack, const char *needle, size_t len);
  • haystack: needle이 있는지 검색되어질 문자열(건초더미)
  • needle: 존재하는지 검색할 문자열(바늘)
  • len: 검색할 길이

리턴값:

  • needle이 빈 문자열일 때, haystack 리턴
  • needle이 haystack에 없을 때, NULL 리턴
  • 그 외에는, needle이 처음 발견된 위치의 needle의 첫 문자의 주소 리턴

 

'42seoul > 42 Cursus' 카테고리의 다른 글

Libft(15) - atoi  (0) 2021.06.26
Libft(14) - strncmp  (0) 2021.06.26
Libft(12) - strrchr  (0) 2021.06.26
Libft(11) - strchr  (0) 2021.06.26
Libft(10) - strlcat  (0) 2021.06.26