wmemmove() — Move wide character
Standards
Standards / Extensions | C or C++ | Dependencies |
---|---|---|
ISO C Amendment |
both |
Format
#include <wchar.h>
wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n);
#define _XOPEN_SOURCE
#define _MSE_PROTOS
#include <wchar.h>
wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n);
General description
Copies n wide chars of the object pointed to by s2 to the object pointed to by s1. Copying takes place as if the n wide characters from s2 are first copied into a temporary array of n wide characters that does not overlay the objects pointed to by s1 and s2, and then copied from the temporary array into the object pointed to by s1.
If n has the value 0, wmemmove() copies zero wide characters.
Special behavior for XPG4: If you define any feature test macro specifying XPG4 behavior before the statement in your program source file to include the wchar header, then you must also define the _MSE_PROTOS feature test macro to make the declaration of the wmemmove() function in the wchar header available when you compile your program. Please see Table 1 for a list of XPG4 and other feature test macros.
Returned value
wmemmove() returns the value of s1.
Example
#include <wchar.h>
#include <stdio.h>
main()
{
wchar_t *in = L"12345678";
wchar_t *out = L"ABCDEFGH";
wchar_t *ptr;
printf("\nExpected result: First 4 chars of in and out the same");
ptr = wmemmove(in, out, 4);
if (ptr == in)
printf("\nArray in %ls array out %ls \n",in, out);
else
{
printf("\n*** ERROR ***");
printf(" Returned pointer not correct.\n");
}
}