Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpCsNc 276 of 696 menu
◀ ▶

Копирование с пределом в C++

Копирование с пределом переносит не больше заданного числа байт из источника в массив-приемник.

Функция strncpy из <cstring> может обрезать текст: если лимит меньше длины строки, '\0' в конце приемника не гарантирован. Безопасный прием - буфер с запасом и ручная установка нуля после копирования. Запишем массив, скопируем с лимитом и закроем строку:

#include <cstring> #include <iostream> char dest[16]; std::strncpy(dest, "longword", 4); dest[4] = '\0'; std::cout << dest << "\n";

Когда лимит не меньше длины источника, нуль попадает в массив вместе с текстом. Покажем полное копирование короткого слова:

#include <cstring> #include <iostream> char slot[12]; std::strncpy(slot, "go", 12); std::cout << slot << "\n";

Объявите char part[10]. Скопируйте из "abcdef" не более 3 символов функцией std::strncpy, поставьте '\0' в part[3] и выведите part.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить