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
См. также
| копирует одну строку в другую (функция) |
|
| копирует один буфер в другой (функция) |
|
Документация по C для strncpy |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/strncpy