std::wcsncpy
From cppreference.com
| ヘッダ <cwchar> で定義 |
||
| wchar_t* wcsncpy( wchar_t* dest, const wchar_t* src, std::size_t count ); |
||
src で指し示されるワイド文字列(終端のヌルワイド文字を含む)から、最大 count 文字を、dest で指し示されるワイド文字配列にコピーします。
src の文字列全体がコピーされる前に count に達した場合、結果のワイド文字配列はヌル終端されません。
src から終端のヌルワイド文字をコピーした後、count に達していない場合、合計 count 文字が書き込まれるまで、追加のヌルワイド文字が dest に書き込まれます。
文字列が重複している場合、動作は未定義です。
目次 |
[編集] パラメータ
| dest | - | コピー先のワイド文字配列へのポインタ |
| src | - | コピー元ワイド文字列へのポインタ |
| count | - | コピーする最大ワイド文字数 |
[編集] 戻り値
dest
[編集] 注意
典型的な使用法では、count は宛先配列のサイズです。
[編集] 例
このコードを実行
#include <cwchar> #include <iostream> int main() { const wchar_t src[] = L"hi"; wchar_t dest[6] = {L'a', L'b', L'c', L'd', L'e', L'f'}; std::wcsncpy(dest, src, 5); // this will copy 'hi' and repeat \0 three times std::wcout << "The contents of dest are: "; for (const wchar_t c : dest) { if (c) std::wcout << c << ' '; else std::wcout << "\\0" << ' '; } std::wcout << '\n'; }
出力
The contents of dest are: h i \0 \0 \0 f
[編集] 関連
| あるワイド文字列を別のワイド文字列にコピーする (関数) | |
| オーバーラップしていない2つの配列間で、指定された数のワイド文字をコピーする (関数) | |
| ある文字列から別の文字列に指定された文字数をコピーする (関数) | |
| Cドキュメント (wcsncpy)
| |