< c‎ | string‎ | byte
Defined in header <string.h>
char *strcpy( char          *dest, const char          *src );
(until C99)
char *strcpy( char *restrict dest, const char *restrict src );
(since C99)

Copies the byte string pointed to by src to byte string, pointed to by dest.

If the strings overlap, the behavior is undefined. Also copies the terminating null-byte.


[edit] Parameters

dest - pointer to the byte string to copy to
src - pointer to the null-terminated byte string to copy from

[edit] Return value


[edit] Example

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
    char A[] = "Take the test.";
    char *B = malloc(strlen(A) + 1);
    strcpy(B, A);
    A[0] = 'M';
    printf("A = %s\nB = %s", A, B);
    return 0;


A = Make the test.
B = Take the test.

[edit] See also

copies a certain amount of characters from one string to another
copies one buffer to another
C++ documentation for strcpy