命名空间
变体
操作

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,则生成的宽字符数组不会以 null 结尾。

如果在从 src 复制终止的空宽字符后,尚未达到 count,则会将额外的空宽字符写入 dest,直到写入的字符总数达到 count

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

内容

[编辑] 参数

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

[编辑] 返回值

dest

[编辑] 备注

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

[编辑] 示例

#include <cwchar>
#include <iostream>
 
int main()
{
    const 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); // this will copy 'hi' and repeat \0 three times
 
    std::wcout << "The contents of dest are: ";
    for (const 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

[编辑] 另请参阅

将一个宽字符串复制到另一个宽字符串
(函数) [编辑]
在两个非重叠数组之间复制一定数量的宽字符
(函数) [编辑]
从一个字符串复制一定数量的字符到另一个字符串
(函数) [编辑]
C 文档 for wcsncpy