memmove
prototype : void *memmove(void *dst, const void *src, size_t len)
description : memmove() 함수는 src에서 dst로 n개의 바이트를 카피한다. src와 dst는 오버랩될 수 있다. 복사는 비파괴적인 방식으로 진행된다.
t_uchar = unsigned char
-----------------------------------------------------------
memchr
prototype : void *memchr(const void *s, int c, size_t count);
description : memchr()함수는 unsigned char로 변환된 c가, s + 0 ~ s + count - 1 까지 중에서 몇 번째에 있는지 찾는다. 리턴값은 찾은 곳의 바이트를 가리키는 포인터이다. 찾지 못하면 NULL을 반환한다.
t_uchar = unsigned char
-----------------------------------------------------------
memcmp
prototype : int memcmp(const void *s1, const void *s2, size_t n);
description
- memcmp() 함수는 byte 문자열 s1과 byte 문자열 s2를 비교한다.
두 개의 문자열은 모두 n바이트임을 가정한다.
- memcmp() 함수는 두 문자열이 동일할 경우 0을 리턴한다.
- 그 외에는 처음으로 다른 부분의 ascii 값 차를 반환한다.
- ex) ascii 200과 0 -> 200 리턴
- n이 0인 경우 항상 동일하다.
(s1[i] != s2[i] 에서 차를 리턴. 해당사항 없으면 0 리턴)
t_uchar = unsigned char
-----------------------------------------------------------
strchr
strrchr
prototype :
- char *strchr(const char *s, int c);
- char *strrchr(const char *s, int c);
Description
- strchr() 함수는 s 문자열 내에 처음으로 c와 같은 요소의 위치를 찾는다.
- null terminating character는 문자열 내의 일부로 인식할 수 있다.
- 그렇기 때문에 c가 '\0'이면 null terminating되는 부분을 찾는다.
- strrchr() 함수는 strchr()과 비슷하지만 문자열 내에서 마지막으로 c가 나온 부분의 위치를 찾는다.
- strchr(), strrchr() 모두 문자열 내에서 찾은 c의 위치를 가리키는 포인터를 반환한다. 못 찾으면 NULL.
------------------------------------------------------------
strnstr
prototype : char *strnstr(const char *big, const char *little, size_t len);
description :
- strnstr() 함수는 null-terminating 돼 있는 little 문자열을 big 문자열 안에서 찾는다. 이 때 big도 null-terminated돼 있는 게 전제다.
- len을 초과하는 문자를 찾지 않는다.
- '\0' 이후의 문자는 찾지 않는다.
return value :
- little이 빈 문자열인 경우 big이 리턴된다.
- little이 big 안에 없으면 NULL이 리턴된다.
- 있으면 처음 찾은 little의 시작 주소를 가리키는 포인터가 리턴된다.
- len이 0이면 NULL리턴
ex)
다음 예제의 ptr은 "Bar Baz"의 시작 위치 담고 있다.
const char *largestring = "Foo Bar Baz";
const char *smallstring = "Bar";
char *ptr;
ptr = strstr(largestring, smallstring);
ex2)
다음 예제의 ptr은 NULL을 가리킨다. 왜냐하면 오직 네 개의 문자만 찾기 때문이다.
const char *largestring = "Foo Bar Baz";
const char *smallstring = "Bar";
char *ptr;
ptr = strnstr(largestring, smallstring, 4);
'Code 42 > libft' 카테고리의 다른 글
ft_lstnew, ft_lstadd_front, ft_lstsize, *ft_lstlast, ft_lstadd_back, ft_lstdelone, ft_lstiter, ft_lstclear, ft_lstmap (0) | 2020.02.27 |
---|---|
ft_substr // ft_strjoin // ft_strmpai (0) | 2020.02.27 |
Mac calloc, strdup (0) | 2020.02.27 |
(MAC) bzero, memcpy, memccpy (0) | 2020.02.24 |
(Mac) memset (0) | 2020.02.24 |
최근댓글