# std::strcpy

From cppreference.com
< cpp‎ | string‎ | byte

Defined in header `<cstring>` |  |
char* strcpy( char* dest, const char* src ); |  |

Copies the character string pointed to by `src`, including the null terminator, to the character array whose first element is pointed to by `dest`.

The behavior is undefined if the `dest` array is not large enough. The behavior is undefined if the strings overlap.

### Parameters

dest | - | pointer to the character array to write to
src | - | pointer to the null-terminated byte string to copy from

### Return value

`dest`

### Example

Run this code

    #include <iostream>
    #include <cstring>
    #include <memory>

    int main()
    {
        const char* src = "Take the test.";
    //  src[0] = 'M'; // can't modify string literal
        auto dst = std::make_unique<char[]>(std::strlen(src)+1); // +1 for the null terminator
        std::strcpy(dst.get(), src);
        dst[0] = 'M';
        std::cout << src << '\n' << dst.get() << '\n';
    }

Output:

    Take the test.
    Make the test.

### See also

strncpy | copies a certain amount of characters from one string to another (function)
memcpy | copies one buffer to another (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/byte/strcpy&oldid=83465"