Namespaces
Variants

std:: strncpy

From cppreference.net
Определено в заголовке <cstring>
char * strncpy ( char * dest, const char * src, std:: size_t count ) ;

Копирует не более count символов байтовой строки, на которую указывает src (включая завершающий нулевой символ), в массив символов, на который указывает dest .

Если count достигается до того, как вся строка src была скопирована, результирующий массив символов не завершается нулевым символом.

Если после копирования завершающего нулевого символа из 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 documentation для strncpy