Namespaces
Variants

std:: wmemset

From cppreference.net
定義先ヘッダ <cwchar>
wchar_t * wmemset ( wchar_t * dest, wchar_t ch, std:: size_t count ) ;

ワイド文字 ch を、 dest が指すワイド文字配列の先頭 count 個の各ワイド文字にコピーします。

オーバーフローが発生した場合、動作は未定義です。

count がゼロの場合、関数は何も行いません。

目次

パラメータ

dest - 埋め込むワイド文字配列へのポインタ
ch - 埋め込み用ワイド文字
count - 埋め込むワイド文字の数

戻り値

dest のコピーを返します。

注記

この関数はロケールに依存せず、書き込む wchar_t オブジェクトの値に注意を払いません:ヌル文字および無効なワイド文字も同様に書き込まれます。

#include <clocale>
#include <cwchar>
#include <iostream>
#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';
}

出力例:

🍌🍌蕉蕉

関連項目

バッファを文字で埋める
(関数)
2つの重ならない配列間で指定された数のワイド文字をコピーする
(関数)
範囲内のN個の要素に指定された値をコピー代入する
(関数テンプレート)