Namespaces
Variants

std:: strncpy

From cppreference.net
ヘッダーで定義 <cstring>
char * strncpy ( char * dest, const char * src, std:: size_t count ) ;

最大で count 文字のバイト文字列(終端のヌル文字を含む)を、 src が指す位置から dest が指す文字配列にコピーします。

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

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

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

目次

パラメータ

dest - コピー先の文字配列へのポインタ
src - コピー元のバイト文字列へのポインタ
count - コピーする最大文字数

戻り値

dest

#include <cstring>
#include <iostream>
int main()
{
    const char* src = "hi";
    char dest[6] = {'a', 'b', 'c', 'd', 'e', 'f'};
    std::strncpy(dest, src, 5);
    std::cout << "The contents of dest are: ";
    for (char c : dest)
    {
        if (c)
            std::cout << c << ' ';
        else
            std::cout << "\\0" << ' ';
    }
    std::cout << '\n';
}

出力:

The contents of dest are: h i \0 \0 \0 f

関連項目

文字列を別の文字列にコピーする
(関数)
バッファを別のバッファにコピーする
(関数)