РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
177 of 815 menu

Функция strncpy

Функция strncpy копирует не более n символов из строки-источника в строку-приемник. В первый параметр мы передаем указатель на строку-приемник, во второй - указатель на строку-источник, а в третий - максимальное количество символов для копирования. Если длина источника меньше n, то остаток приемника заполняется нулевыми символами. Если длина источника больше или равна n, то нулевой символ в конец не добавляется.

Синтаксис

char* strncpy(char* destination, const char* source, size_t n);

Пример

Давайте скопируем 3 символа из строки "abcde" в буфер:

#include <iostream> #include <cstring> using namespace std; int main() { char source[] = "abcde"; char destination[10] = {}; strncpy(destination, source, 3); cout << destination << endl; return 0; }

Результат выполнения кода:

"abc"

Пример

Давайте скопируем 10 символов из короткой строки "abc" в буфер и посмотрим, чем заполнится остаток:

#include <iostream> #include <cstring> using namespace std; int main() { char source[] = "abc"; char destination[10]; strncpy(destination, source, 10); for (int i = 0; i < 10; i++) { cout << (int)destination[i] << " "; } cout << endl; return 0; }

Результат выполнения кода:

97 98 99 0 0 0 0 0 0 0

Пример

Давайте перезапишем начало уже существующей строки:

#include <iostream> #include <cstring> using namespace std; int main() { char destination[10] = "12345"; char source[] = "abc"; strncpy(destination, source, 3); cout << destination << endl; return 0; }

Результат выполнения кода:

"abc45"

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

  • функция strcpy,
    которая копирует строку целиком
  • функция strcat,
    которая присоединяет строку к строке
  • функция strlen,
    которая возвращает длину строки
  • функция memcpy,
    которая копирует блок памяти
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить