# std::wcscpy

< cpp‎ | string‎ | wide

定义于头文件 `<cwchar>` |  |
wchar_t *wcscpy( wchar_t *dest, const wchar_t *src ); |  |

复制 `src` 所指向的宽字符串（包含空终止宽字符）到 `dest` 所指向的宽字符数组。

若字符串重叠，则行为未定义。

### 参数

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

### 返回值

`dest`

### 示例

    #include <iostream>
    #include <cwchar>
    #include <memory>
    #include <clocale>

    int main()
    {
        const wchar_t* src = L"犬 means dog";
    //  src[0] = L'狗'; // 不能修改字符串字面量
        auto dst = std::make_unique<wchar_t[]>(std::wcslen(src)+1); // 为空宽字符 +1
        std::wcscpy(dst.get(), src);
        dst[0] = L'狗';
        std::setlocale(LC_ALL, "en_US.utf8");
        std::wcout.imbue(std::locale(""));
        std::wcout << src << '\n' << dst.get() << '\n';
    }

输出：

    犬 means dog
    狗 means dog

### 参阅

wcsncpy | 复制来自一个宽字符串的一定量宽字符到另一个 (函数)
wmemcpy | 在两个不重叠数组间复制一定量宽字符 (函数)
strcpy | 复制一个字符串给另一个 (函数)