include
#include <string.h> void *memccpy(void *dest, const void *src, int c, size_t n);
인자
- dest
복사가 진행될 목적지이다.void *
의 형태로 string뿐 아니라 다른 값도 들어올 수 있다.- src
우리가 복사를 해야하는 값이 들어있는 포인터이다.- c
복사를 진행하다가캐릭터 c
를 만나면해당 부분까지만
복사를 진행하고그 다음 포인터
를 리턴한다.- n
src에서부터 n byte만큼 dest에 복사를 한다.
동작은 memmpy
와 거의 동일하다. 한가지 다른 점이 있다면 복사를 진행하다가 캐릭터 c
를 만나게 되면 해당 부분까지만
복사를 진행하고 그 다음 포인터
를 리턴하고 만약 c를 찾지 못한다면 n만큼 복사하고 NULL을 리턴
한다.
위 사진처럼 c = e라면 e까지만 복사를 진행하고 e다음 번지인 0x3을 리턴한다. 만약 c가 src에 없다면 동작은 memcpy와 동일하되 return값이 NULL이 된다.
src안에서 c를 찾는다면 그 다음 포인터를 리턴하고 그게 아니라면 NULL을 리턴한다.