_memccpy
Copies characters from a buffer.
Syntax
void *_memccpy(
void *dest,
const void *src,
int c,
size_t count
);
Parameters
dest
Pointer to the destination.
src
Pointer to the source.
c
Last character to copy.
count
Number of characters.
Return value
If the character c
is copied, _memccpy
returns a pointer to the char in dest
that immediately follows the character. If c
isn't copied, it returns NULL
.
Remarks
The _memccpy
function copies zero or more characters of src
to dest
, halting when the character c
has been copied or when count
characters have been copied, whichever comes first.
Security Note Make sure that the destination buffer is the same size or larger than the source buffer. For more information, see Avoiding buffer overruns.
Requirements
Routine | Required header |
---|---|
_memccpy |
<memory.h> or <string.h> |
For more compatibility information, see Compatibility.
Libraries
All versions of the C run-time libraries.
Example
// crt_memccpy.c
#include <memory.h>
#include <stdio.h>
#include <string.h>
char string1[60] = "The quick brown dog jumps over the lazy fox";
int main( void )
{
char buffer[61];
char *pdest;
printf( "Function: _memccpy 60 characters or to character 's'\n" );
printf( "Source: %s\n", string1 );
pdest = _memccpy( buffer, string1, 's', 60 );
*pdest = '\0';
printf( "Result: %s\n", buffer );
printf( "Length: %d characters\n", strlen( buffer ) );
}
Output
Function: _memccpy 60 characters or to character 's'
Source: The quick brown dog jumps over the lazy fox
Result: The quick brown dog jumps
Length: 25 characters
See also
Buffer manipulation
memchr
, wmemchr
memcmp
, wmemcmp
memcpy
, wmemcpy
memset
, wmemset