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 ,则写入额外的空字符到 dest ,直至写入总共 count 个字符。

若字符串重叠,则行为未定义。

参数

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

参阅

复制一个字符串给另一个
(函数)
复制一个缓冲区到另一个
(函数)