命名空间
变体
操作

std::strncpy

来自 cppreference.com
< cpp‎ | string‎ | byte
定义在头文件 <cstring>
char* strncpy( char* dest, const char* src, std::size_t count );

最多复制 count 个由 src 指向的字节字符串中的字符(包括结束的空字符)到由 dest 指向的字符数组中。

如果在复制整个字符串 src 之前就达到了 count,则生成的字符数组不会以 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

[编辑] 参见

将一个字符串复制到另一个字符串
(函数) [编辑]
将一个缓冲区复制到另一个缓冲区
(函数) [编辑]
C 文档 for strncpy