当前位置: C语言 -- 标准库 -- <wchar.h> -- wmemcpy

wmemcpy函数


概要:
#include <wchar.h>
wchar_t *wmemcpy(wchar_t * restrict s1,
      const wchar_t * restrict s2,
      size_t n);

描述:

该函数从参数s2指向的对象中复制n个宽字符到参数s1指向的对象中。

如果复制发生在重叠对象之间,函数行为是未定义的。

ISO/IEC 9899:2018标准定义了该函数的安全版本wmemcpy_s


参数:
wchar_t * restrict s1

指向目标对象的指针,复制内容将存入该对象中。

const wchar_t * restrict s2

指向源对象的指针,从该对象中复制内容。

size_t n

复制的宽字符数。


返回值:

函数返回s1的值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
/*函数wmemcpy范例*/

#include <locale.h>
#include <wchar.h>

int main(void)
{
    setlocale(LC_ALL, "");
    
    const wchar_t source[] = L"读书破万卷,下笔如有神。";
    size_t length = wcslen(source) + 1;
    wchar_t destination[length];

    wmemcpy(destination, source, length);
    for(size_t i=0; i<length; ++i)
        wprintf(L"%lc", destination[i]);

    wprintf(L"\n");
    
    return 0;
}


输出:

读书破万卷,下笔如有神。


相关内容:
wmemmove 移动内存区域宽字符序列的函数。
wcscpy 复制宽字符串的函数。
wcsncpy 从宽字符串中复制限定数量宽字符的函数。