Xi Xu's More Things

wmemset

来自cppreference.com
< c‎ | string‎ | wide
 
 
 
空终止宽字符串
函数
字符操作
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C99)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
转换成数值格式
(C95)(C99)
(C95)(C99)
(C99)(C95)(C99)
(C99)(C99)
字符串操作
(C95)(C11)
(C95)(C11)
(C95)(C11)
(C95)(C11)
(C95)(C11)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)
(C95)(C11)
数组操作
(C95)(C11)
(C95)(C11)
(C95)
(C95)
wmemset
(C95)
 
在标头 <wchar.h> 定义
wchar_t *wmemset( wchar_t *dest, wchar_t ch, size_t count );
(C95 起)

复制宽字符 chdest 所指向的宽字符数组(或兼容类型的整数数组)的首 count 个宽字符。

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

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

参数

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

返回值

返回 dest 的副本

注意

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

示例

#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
int main(void)
{
    wchar_t ar[10] = L"1234567890"; // 数组中无尾随空字符
    wmemset(ar, L'\U0001f34c', 5); // 以 🍌 替换 [12345]
    wmemset(ar+5, L'蕉', 5); // 以 蕉 替换 [67890]
 
    setlocale(LC_ALL, "en_US.utf8");
    for(size_t n = 0; n < sizeof ar/sizeof *ar; ++n)
        putwchar(ar[n]);
    putwchar(L'\n');
}

输出:

🍌🍌🍌🍌🍌蕉蕉蕉蕉蕉

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.29.4.6.2 The wmemset function (第 439 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.24.4.6.2 The wmemset function (第 385 页)

参阅

以字符填充缓冲区
(函数)
(C95)(C11)
在两个不重叠的数组间复制一定数量的宽字符
(函数)