wmemset
Defined in header <wchar.h> | ||
---|---|---|
wchar_t *wmemset( wchar_t *dest, wchar_t ch, size_t count ); | (since C95) |
Copies the wide character ch
into each of the first count
wide characters of the wide character array (or integer array of compatible type) pointed to by dest
.
If overflow occurs, the behavior is undefined.
If count
is zero, the function does nothing.
Parameters
dest | - | pointer to the wide character array to fill |
ch | - | fill wide character |
count | - | number of wide characters to fill |
Return value
Returns a copy of dest
.
Notes
This function is not locale-sensitive and pays no attention to the values of the wchar_t
objects it writes: nulls as well as invalid wide characters are written too.
Example
#include <stdio.h> #include <wchar.h> #include <locale.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'); }
Output:
????????????????????蕉蕉蕉蕉蕉
References
- C11 standard (ISO/IEC 9899:2011):
- 7.29.4.6.2 The wmemset function (p: 439)
- C99 standard (ISO/IEC 9899:1999):
- 7.24.4.6.2 The wmemset function (p: 385)
See also
(C11) | fills a buffer with a character (function) |
(C95)(C11) | copies a certain amount of wide characters between two non-overlapping arrays (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/string/wide/wmemset