Namespaces
Variants

std:: wcsncpy

From cppreference.net
定义于头文件 <cwchar>
wchar_t * wcsncpy ( wchar_t * dest, const wchar_t * src, std:: size_t count ) ;

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

如果在复制整个字符串 src 之前达到 count ,则生成的宽字符数组不会以空字符结尾。

如果在从 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); // 这将复制 'hi' 并重复 \0 三次
    std::wcout << "目标数组的内容为: ";
    for (const wchar_t c : dest)
    {
        if (c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

输出:

目标数组的内容为: h i \0 \0 \0 f

参见

将一个宽字符串复制到另一个宽字符串
(函数)
在两个非重叠数组间复制指定数量的宽字符
(函数)
将一个字符串的指定数量字符复制到另一个字符串
(函数)
C documentation for wcsncpy