Namespaces
Variants

wmemset

From cppreference.net
< c ‎ | string ‎ | wide
Определено в заголовочном файле <wchar.h>
wchar_t * wmemset ( wchar_t * dest, wchar_t ch, size_t count ) ;
(начиная с C95)

Копирует широкий символ ch в каждую из первых count широких символов массива широких символов (или массива целых чисел совместимого типа), на который указывает dest .

Если происходит переполнение, поведение не определено.

Если count равен нулю, функция ничего не делает.

Содержание

Параметры

dest - указатель на массив широких символов для заполнения
ch - заполняющий широкий символ
count - количество широких символов для заполнения

Возвращаемое значение

Возвращает копию dest

Примечания

Эта функция не зависит от локали и не обращает внимания на значения объектов wchar_t которые она записывает: нулевые символы, а также недопустимые широкие символы также записываются.

Пример

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
    wchar_t ar[10] = L"1234567890"; // no trailing null in the array
    wmemset(ar, L'\U0001f34c', 5); // replaces [12345] with the 🍌 bananas
    wmemset(ar + 5, L'蕉', 5); // replaces [67890] with the 蕉 bananas
    setlocale(LC_ALL, "en_US.utf8");
    for (size_t n = 0; n < sizeof ar / sizeof *ar; ++n)
        putwchar(ar[n]);
    putwchar(L'\n');
}

Вывод:

🍌🍌🍌🍌🍌蕉蕉蕉蕉蕉

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 7.29.4.6.2 Функция wmemset (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.29.4.6.2 Функция wmemset (стр.: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.29.4.6.2 Функция wmemset (стр: 439)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.24.4.6.2 Функция wmemset (стр: 385)

Смотрите также

заполняет буфер символом
(функция)
копирует определённое количество широких символов между двумя неперекрывающимися массивами
(функция)
C++ documentation для wmemset