std::wmemset

< cpp‎ | string‎ | wide
定义于头文件 <cwchar>
wchar_t* wmemset( wchar_t* dest, wchar_t ch, std::size_t count );

复制宽字符 chdest 所指向的宽字符数组的首 count 个宽字符。

若出现溢出,则行为未定义。

count 为零,则函数不做任何事。

参数

dest - 指向要填充的宽字符数组的指针
ch - 填充的宽字符
count - 要填充的宽字符数

返回值

返回 dest 的副本

注意

此函数不受本地环境影响,且不注意其写入的 wchar_t 对象的值:亦写入空字符还有非法宽字符。

示例

#include <iostream>
#include <cwchar>
#include <clocale>
#include <locale>
 
int main()
{
    wchar_t ar[4] = {L'1', L'2', L'3', L'4'};
    std::wmemset(ar, L'\U0001f34c', 2); // 以 🍌 替换 [12]
    std::wmemset(ar+2, L'蕉', 2); // 以 蕉 替换 [34]
 
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout.imbue(std::locale("en_US.utf8"));
    std::wcout << std::wstring(ar, 4) << '\n';
}

可能的输出:

🍌🍌蕉蕉

参阅

以一个字符填充缓冲区
(函数)
在两个不重叠数组间复制一定量宽字符
(函数)
将一个给定值复制赋值给一个范围内的 N 个元素
(函数模板)