문제 소개
-
ft_strchr과 비슷한 문제라고 할 수 있다.
-
void 포인터 s에서 c와 동일한 부분을 만나면, 해당 포인터를 리턴
ex. s = “computer science”, c = “p”
반환값 = “puter science”
구현
- 메모리 연산을 해야하므로 unsigned char를 이용
- 같은 값을 만나서 반환
코드
c
#include "libft.h"
void *ft_memchr(const void *buffer, int c, size_t n)
{
size_t i;
i = 0;
while (i < n)
{
if (((unsigned char *)buffer)[i] == (unsigned char) c)
return ((void *)buffer + i);
i++;
}
return ((void *)0);
}