close
Пространства имён
Варианты
Действия

std::strncpy

Материал из cppreference.com
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Манипуляции со строками
Проверка строки
Манипуляции с памятью
Разное
 
<tbody> </tbody>
Определено в заголовочном файле <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 << "Содержимое dest: ";
    for (char c : dest)
    {
        if (c)
            std::cout << c << ' ';
        else
            std::cout << "\\0" << ' ';
    }
    std::cout << '\n';
}

Вывод:

Содержимое dest: h i \0 \0 \0 f

Смотрите также

копирует одну строку в другую
(функция) [править]
копирует один буфер в другой
(функция) [править]