std::wcsncpy

来自cppreference.com
< cpp‎ | string‎ | wide
在标头 <cwchar> 定义
wchar_t *wcsncpy( wchar_t *dest, const wchar_t *src, std::size_t count );

复制 src 所指向的宽字符串的至多 count 个字符(包含终止空宽字符)到 dest 所指向的宽字符数组。

若在完全复制整个 src 数组前抵达 count ,则产生的宽字符数组不是空终止的。

若在复制来自 src 的终止空宽字符后未抵达 count ,则写入额外的空宽字符到 dest ,直至写入总共 count 个字符。

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

参数

dest - 指向要复制到的宽字符数组的指针
src - 指向复制来源的宽字符串的指针
count - 要复制的最大宽字符数

返回值

dest

注意

典型用法中, count 是目标数组的大小。

示例

#include <iostream>
#include <cwchar>
 
int main()
{
    wchar_t src[] = L"hi";
    wchar_t dest[6] = {L'a', L'b', L'c', L'd', L'e', L'f'};
 
    std::wcsncpy(dest, src, 5); // 这将复制 hi 并重复 \0 三次
 
    std::wcout << "The contents of dest are: ";
    for(wchar_t c : dest) {
        if(c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

输出:

The contents of dest are: h i \0 \0 \0 f

参阅

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