wmemcpy | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


wmemcpy関数 🔗

概要

あるメモリアドレスを起点に、一定の文字数を別のメモリアドレスへコピーする。

ヘッダ

wchar.h

形式

wchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t size);

引数

s1

コピー先の先頭のメモリアドレス。

s2

コピー元の先頭のメモリアドレス。

size

コピーする文字数。

戻り値

s1 が返される。

詳細

基本的な意味は wcscpy関数と変わらないが、ヌル文字によって打ち切られることがない。

注意

コピー先の範囲と、コピー元の範囲が重なり合っている場合の結果は未定義である。重なり合う場合には、wmemmove関数を使えば良い。

使用例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    wchar_t s1[] = L"abcdefg";
    wchar_t s2[] = L"xyz";

    wprintf(L"%ls\n", wmemcpy(s1, s2, sizeof(s2)/sizeof(s2[0])-1));
}

実行結果:

xyzdefg

関連

コピー先範囲とコピー元範囲が重なり合う場合は、wmemmove関数を使う。ワイド文字列のコピーならば、wcscpy関数wcsncpy関数が使える。
また、文字をマルチバイト文字とみなして同様の処理を行う memcpy関数がある。

解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗

- 仮引数に restrict を付加

 全体的に文章を見直し修正。

 「サイズ」という表記について表現を統一。 型のサイズ(バイト数)を表しているところは「大きさ」、要素数を表しているところは「要素数」。

 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る