Spec-Zone.ru › C++

std::strncpy

Определён в заголовочном файле <cstring>
char* strncpy( char* dest, const char* src, std::size_t count );

Копирует не более count символов из байтовой строки, на которую указывает src (включая завершающий нулевой символ), в символьный массив, на который указывает 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

См. также

strcpy
копирует одну строку в другую
(функция)
memcpy
копирует один буфер в другой
(функция)
Документация по C для strncpy

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/strncpy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API