函数
<cwchar>

wcsncpy

wchar_t* wcsncpy (wchar_t* destination, const wchar_t* source, size_t num);
从宽字符串复制字符
source 的前 num 个字符复制到 destination。如果在复制 num 个字符之前遇到了 source C 宽字符串的结尾(由 空宽字符 标识),则 destination 会被填充额外的 空宽字符,直到总共写入了 num 个字符为止。

如果 source 的长度大于 num,则 destination 的末尾不会隐式地添加 空宽字符(因此,在这种情况下,destination 可能不是以空字符结尾的 C 宽字符串)。

destinationsource 不得重叠(当出现重叠时,请参阅 wmemmove 以获得更安全的选择)。

这是 strncpy<cstring>)的 宽字符 等效函数。

参数

destination
指向要复制内容的目标数组的指针。
source
要复制的 C 宽字符串。
num
source 复制的最大宽字符数。
size_t 是一个无符号整数类型。

返回值

返回 destination

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* wcsncpy example */
#include <wchar.h>

int main ()
{
  wchar_t wcs1[] = L"To be or not to be";
  wchar_t wcs2[40];
  wchar_t wcs3[40];

  /* copy to sized buffer (overflow safe): */
  wcsncpy ( wcs2, wcs1, 40 );

  /* partial copy (only 5 characters): */
  wcsncpy ( wcs3, wcs2, 5 );
  wcs3[5] = L'\0';   /* null character manually added */

  wprintf (L"%ls\n%ls\n%ls\n",wcs1,wcs2,wcs3);

  return 0;
}

输出

To be or not to be
To be or not to be
To be 


另见