wmemmove() — ワイド文字バッファーのコピー
形式
#include <wchar.h>
wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n);言語レベル
ANSI
スレッド・セーフ
はい
ワイド文字関数
詳しくは、 ワイド文字 を参照してください。
説明
wmemmove() 関数は、 s2 が指すオブジェクトから s1が指すオブジェクトに n 個のワイド文字をコピーします。 まず s2 が示すオブジェクトの n ワイド文字が、s1 または s2 が示すオブジェクトと重ならない n ワイド文字の一時配列にコピーされます。 次に、 wmemmove() 関数は、 n ワイド文字を一時配列から s1が指すオブジェクトにコピーします。 n の値が 0 の場合、 wmemmove() 関数は 0 個のワイド文字をコピーします。
戻り値
wmemmove() 関数は、 s1の値を戻します。
例
この例では、ストリング内の最初の 5 文字をコピーして、同じストリング内の最後の
5 文字をオーバーレイします。 ストリングの長さは 9 文字のみなので、
ソースとターゲットはオーバーラップします。
#include <wchar.h>
#include <stdio.h>
void main()
{
wchar_t *theString = L"ABCDEFGHI";
printf("\nThe original string: %ls \n", theString);
wmemmove(theString+4, theString, 5);
printf("\nThe string after wmemmove: %ls \n", theString);
return;
}
/********************************************************
The output should be:
The original string: ABCDEFGHI
The string after wmemmove: ABCDABCDE
********************************************************/