반응형

42cursus 17

[0 Circle] Libft - ft_strnstr, ft_strncmp

📌ft_strnstr 문자열 내에서 부분문자열을 탐색하는 함수 char *ft_strnstr(const char *str, const char *to_find, size_t n); ➕ 매개변수 (Parameters) str : 문자열을 검색할 대상 to_find : 검색할 문자열 n : str의 n번째 문자까지만 확인 ➕ 반환값 (Return) char * : 문자열이 존재하면 해당 문자열이 존재하는 곳의 포인터를 반환, 존재하지 않으면 NULL 반환 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" int find_str(const char *str, const char *to_find, int n) { str += n; while (*to_find) { if (..

[0 Circle] Libft - ft_strchr, ft_strrchr

📌ft_strchr src에서 특정 문자를 검색하는 함수 char *ft_strchr(const char *str, int c) ; ➕ 매개변수 (Parameters) str : 검색을 하려는 문자열 c : 검색할 문자 ➕ 반환값 (Return) char * : 문자가 존재하면 해당 문자가 존재하는 곳의 포인터를 반환, 존재하지 않으면 NULL 반환 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" char *ft_strchr(const char *str, int c) { while (*str != '\0') { if (*str == c) return ((char *)str); ++str; } if (c == '\0') return ((..

[0 Circle] Libft - ft_strlcpy, ft_strlcat

📌ft_strlcpy src에서 dst로 값을 size길이 만큼 복사 size_t ft_strlcpy(char *dst, const char *src, size_t dstsize));➕ 매개변수 (Parameters) dst : 채우고자 하는 메모리의 시작 주소 src : 복사하려는 메모리의 시작 주소 dstsize : 채우고자 하는 바이트의 수 ➕ 반환값 (Return) size_t : src의 총 길이 ➕ 설명 (Description) ⚡ 문자열의 끝인 dest[size-1]는 NULL 값으로 채워주기 size가 0일 때 바로 함수 끝내기 dst의 주소가 NULL일 때 NULL반환 ➕ 코드 (Code) #include "libft.h" size_t ft_strlcpy(char *dst, const c..

[0 Circle] Libft - ft_memcmp, ft_strlen

📌ft_memcmp str1과 str2를 n바이트만큼 비교 void *ft_memcmp(const void *str1, const void *str2, unsigned int n);➕ 매개변수 (Parameters) str1 : 비교할 첫번째 메모리의 시작값 str2 : 비교할 두번째 메모리의 시작값 n : 비교할 만큼의 바이트 수 ➕ 반환값 (Return) int : str2가 str1보다 큰 경우 음수 / 작은 경우 양수 / 동일한 경우 0 ➕ 설명 (Description) ➕ 코드 (Code) #include "libft.h" int ft_memcmp(const void *str1, const void *str2, unsigned int n) { unsigned const char *tmp1; un..

[0 Circle] Libft - ft_memmove, ft_memchr

📌ft_memmove 메모리를 이동하는 함수 void*ft_memmove(void *dest, const void *src, unsigned int len) ;➕ 매개변수 (Parameters) dest : 이동하여 저장할 메모리의 시작 주소 src : 이동하려는 메모리의 시작 주소 n : 이동할 바이트의 수 ➕ 반환값 (Return) void * : dest의 포인터 반환 ➕ 설명 (Description) memcpy와 같이 메모리의 내용을 다른 메모리로 옮기는 함수이지만 memmove 함수는 이동할 데이터를 임시 버퍼에 옮긴 후 대상 버퍼오 이동하는 과정을 거치기 때문에 두 메모리가 근점해 있더라도 중첩현상이 발생하지 않는 장점이 있다. ➕ 코드 (Code) #include "libft.h" void..

[0 Circle] Libft - ft_memcpy, ft_memccpy

📌ft_memcpy src메모리영역에서 dest메모리 영역으로 n byte만큼 복사 void *ft_memcpy(void *dest, const void *src, unsigned int n);➕ 매개변수 (Parameters) dest : 채우고자 하는 메모리의 시작 주소 src : 복사하려는 메모리의 시작 주소 n : 채우고자 하는 바이트의 수 ➕ 반환값 (Return) void * : dest의 포인터 반환 ➕ 설명 (Description) strcpy() 함수와의 차이점은 문자열은 문자열의 끝을 Null 바이트로 구분하지만 메모리는 Null 바이트도 데이터이기 때문에 n을 명시적으로 지정해야 한다는 것이다. ➕ 코드 (Code) #include "libft.h" void*ft_memcpy(void..