Namespaces
Variants

std:: strncpy

From cppreference.net
定义于头文件 <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 <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