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
   ********************************************************/

関連情報