Spec-Zone.ru › C++

std::strncpy

Определено в заголовке <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

См. также

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

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

Spec-Zone.ru

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