Namespaces
Variants

std:: wcsncpy

From cppreference.net
定義済みヘッダー <cwchar>
wchar_t * wcsncpy ( wchar_t * dest, const wchar_t * src, std:: size_t count ) ;

最大で count 文字のワイド文字列(終端のナルワイド文字を含む)を src が指す先から dest が指すワイド文字配列にコピーします。

count が文字列全体 src のコピー完了前に到達した場合、結果のワイド文字配列はnull終端されません。

src から終端ナルワイド文字をコピーした後、 count に達していない場合、追加のナルワイド文字が dest に書き込まれ、合計で count 文字が書き込まれるまで続きます。

文字列が重なる場合、動作は未定義です。

目次

パラメータ

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つの配列間で指定された数のワイド文字をコピーする
(関数)
ある文字列から別の文字列へ指定された数の文字をコピーする
(関数)