# std::strcpy

< cpp‎ | string‎ | byte

定义于头文件 `<cstring>` |  |
char* strcpy( char* dest, const char* src ); |  |

复制 `src` 所指向的字符串，包含空终止符，到首元素为 `dest` 所指向的字符数组。

若 `dest` 数组不够大则行为未定义。若字符串重叠则行为未定义。

### 参数

dest | - | 指向要写入的字符数组的指针
src | - | 指向复制来源的空终止字节字符串的指针

### 返回值

`dest`

### 示例

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

    int main()
    {
        const char* src = "Take the test.";
    //  src[0] = 'M'; // 不能修改字符串字面量
        auto dst = std::make_unique<char[]>(std::strlen(src)+1); // 为空终止符 +1
        std::strcpy(dst.get(), src);
        dst[0] = 'M';
        std::cout << src << '\n' << dst.get() << '\n';
    }

输出：

    Take the test.
    Make the test.

### 参阅

strncpy | 复制来自一个字符串的一定量字符给另一个 (函数)
memcpy | 复制一个缓冲区到另一个 (函数)