名前空間
変種
操作

std::strncpy

提供: cppreference.com
< cpp‎ | string‎ | byte
ヘッダ <cstring> で定義
char *strncpy( char *dest, const char *src, std::size_t count );

src の指すバイト文字列から最大 count 文字を (終端のヌル文字も含めて) dest の指す文字配列にコピーします。

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

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

文字列がオーバーラップする場合、動作は未定義です。

目次

[編集] 引数

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

[編集] 戻り値

dest

[編集]

#include <iostream>
#include <cstring>
 
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

[編集] 関連項目

文字列を別の文字列にコピーします
(関数) [edit]
バッファを別のバッファへコピーします
(関数) [edit]