헤더 파일
<string.h>
사용 목적
지정한 메모리 범위 내에서 특정 문자를 찾는다
프로토타입과 매개변수
void *memchr(const void *s, int c, size_t n);
1. const void *s = 문자 c를 찾고자 하는 주소의 시작 지점
2. int c = 찾고자 하는 문자(ascii)
3. size_t n = 주소의 시작 지점부터 찾고자 하는 범위 (byte 단위)
반환값
1. 범위 내에 찾고자 하는 문자와 일치하는 지점이 있으면 그 주솟값을 반환
2. 범위 내에 찾고자 하는 문자가 없으면 NULL 포인터를 반환
함수의 원리
이해를 돕기 위해 같은 동작을 하는 함수를 만든 것입니다.
void *ft_memchr(const void *s, int c, size_t n)
{
unsigned int i;
i = 0;
while (i < n) // 지정한 범위만큼 찾아나감
{
if (*(char *)s == c) // 지정한 문자와 같으면
return ((void *)s); // 그 주솟값을 반환
s++;
i++;
}
return (NULL); // 찾고자 하는 문자가 없으면 NULL 포인터를 반환
}
사용 예시
#include <string.h>
#include <stdio.h>
int main(void)
{
char str[] = "Life is Fortytwo";
char c1 = 's';
char c2 = 'z';
printf("\nIf character exsist: %s\n", memchr(str, c1, 30));
printf("\nIf characher don't exist: %s\n\n", memchr(str, c2, 30));
return (0);
}
If character exsist: s Fortytwo
If characher don't exist: (null)
'C언어 > 함수' 카테고리의 다른 글
memset (0) | 2020.09.25 |
---|---|
memmove (0) | 2020.08.10 |
memccpy (0) | 2020.08.10 |
memcpy (0) | 2020.08.10 |
memcmp (0) | 2020.08.10 |
strlen (0) | 2020.08.10 |