Name
strcpy
, strncpy
- copy a string
Synopsis
#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncopy(char *dest, const char * src, size_t n);
Description
The strcpy()
function copies the string pointed to by src
including the terminating null byte (‘\0’), to the buffer pointed to by
dest
. The strings may not overlap, and the destination string dest
must be large enough to receive the copy.
The strncopy()
function is similar, except that at most n
bytes of
src
are copied. Note that if there is no null byte among the first n
bytes of src
, the string placed in dest
will not be null-terminated.
If the length of src
is less than n
, strncopy()
writes additional null bytes to dest
to ensure that a total of n
bytes are written.
Example
#include <assert.h>
#include <string.h>
int main() {
char src[23] = "hello, i'm an example!";
char dest1[23];
char dest2[23];
// Copy entire string to first destination.
strcpy(dest1, src);
assert(strcmp(src, dest1) == 0);
// Fill dest2 with null bytes, then copy five characters.
memset(dest2, '\0', sizeof(dest2));
strncpy(dest2, src, 5);
assert(strcmp("hello", dest2) == 0);
}
Return Value
Upon completion, the strcpy()
and strncpy()
functions return a pointer to the destination string dest
.