std::wmemcpy
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <cwchar> で定義
|
||
wchar_t* wmemcpy( wchar_t* dest, const wchar_t* src, std::size_t count ); |
||
ちょうど count 個の連続するワイド文字を src の指すワイド文字配列から dest の指すワイド文字配列にコピーします。 オブジェクトがオーバーラップしている場合、動作は未定義です。 count がゼロの場合、この関数は何もしません。
引数
| dest | - | コピー先のワイド文字配列を指すポインタ |
| src | - | コピー元のワイド文字配列を指すポインタ |
| count | - | コピーするワイド文字数 |
戻り値
dest。
ノート
この関数はロケール対応でなく、コピーする wchar_t オブジェクトの値を気にしません。 ヌルも無効な文字もコピーします。
例
Run this code
#include <iostream>
#include <cwchar>
#include <clocale>
#include <locale>
int main(void)
{
wchar_t from1[] = L"नमस्ते";
const size_t sz1 = sizeof from1 / sizeof *from1;
wchar_t from2[] = L"Բարև";
const size_t sz2 = sizeof from2 / sizeof *from2;
wchar_t to[sz1 + sz2];
std::wmemcpy(to, from1, sz1); // copy from1, along with its null terminator
std::wmemcpy(to + sz1, from2, sz2); // append from2, along with its null terminator
std::setlocale(LC_ALL, "en_US.utf8");
std::cout.imbue(std::locale("en_US.utf8"));
std::wcout << "Wide array contains: ";
for(size_t n = 0; n < sizeof to / sizeof *to; ++n)
if(to[n])
std::wcout << to[n];
else
std::wcout << "\\0";
std::wcout << '\n';
}
出力例:
Wide array contains: नमस्ते\0Բարև\0
関連項目
| 文字列から別の文字列へ文字を一定量コピーします (関数) | |
| 2つのオーバーラップしている可能性のある配列間でワイド文字を一定量コピーします (関数) | |
wmemcpy の C言語リファレンス
| |