Как использовать функцию strncpy() в C++

Kak Ispol Zovat Funkciu Strncpy V C



В C++ существует множество функций для копирования строк или символов из одного места в другое, например, strcpy, strncpy и memcpy. Они отличаются друг от друга функциональностью. В этом уроке мы обсудим strncpy() функция на С++.

Что такое функция strncpy() в C++

Функция strncpy() — это встроенная функция C++, которая используется для копирования фиксированного количества символов из одной строки в другую. Для функции требуется три параметра: целевая строка, в которой будут содержаться символы, исходная строка, в которой будут содержаться символы, и количество копируемых символов. Если исходная строка содержит меньше указанного количества символов, целевая строка будет дополнена нулевыми символами до оставшейся длины.

Прототип функции strncpy() приведен ниже.







уголь * strncpy ( уголь * Руки константа уголь * источник, размер_t считать ) ;

Каковы параметры C++ strncpy()?

Все параметры strncpy() функции объясняются ниже.



  • рука: Указатель на целевой массив, в который было отправлено содержимое.
  • источник: Указатель на исходный массив, из которого берется содержимое.
  • считать: Максимальное количество символов, которое может быть скопировано из источника в место назначения.

Как работает функция strncpy() в C++

strncpy() функция принимает три аргумента: пункт назначения, и считать . Он проверяет, если источник строка завершается нулем, и если да, она копирует указанное количество символов из источник строка к начинать нить. Если число меньше длины источник строка, первые символы счетчика были переданы в начинать строка и не заканчиваются нулем. Если счетчик превышает длину источник , все персонажи из источник копируются в начинать , и дополнительные завершающие нулевые символы были включены до тех пор, пока не будут записаны все символы счетчика.



Данный пример иллюстрирует работу C++ strncpy() функция.





#include
#include
с использованием пространство имен станд. ;
инт основной ( )
{
уголь src_str [ ] '=' 'Я пишу код для strncpy' ;
уголь целевая_ул [ 60 ] ;
strncpy ( dest_str,src_str, стрлен ( src_str ) ) ;
cout << целевая_ул << ' \n ' ;
возвращаться 0 ;
}

В этой программе мы использовали <строка.h> заголовочный файл, потому что он включает strncpy() функция. Мы определили две строки, одна из которых src_str а другой адрес_ул. strncpy() функция, которая берет данные из строка src_str и копирует его в целевая_ул . Здесь ул(src_str) используется для подсчета общего количества символов из строка src_str .

выход программы можно показать ниже.



Каковы проблемы с использованием strncpy() в C++

  • Если в целевом массиве нет нулевого символа или строка не завершается нулем, наша программа или код рано или поздно могут столкнуться с проблемами. Строка с ненулевым завершением в C++ превратилась в опасный код, который может сломаться в любой момент во время выполнения программы. Это может привести к ошибке сегментации в программе. Как результат, strncpy() не гарантирует, что целевая строка всегда завершается нулем, что делает ее рискованным кодом для программы, которую мы пишем.
  • Эта функция не может проверить переполнение, поэтому, если мы попытаемся скопировать исходную строку в место назначения, которое меньше по размеру, чем источник, мы получим ошибку и неопределенное поведение.

Заключение

Чтобы скопировать данные из одной строки в другую, мы используем strncpy() в C++, которая является встроенной функцией в <строка.h> заголовочный файл. В этой статье мы обсудили синтаксис и работу C++. strncpy функция с примером. Мы также выделили некоторые проблемы, из-за которых strncpy может сделать наш код рискованным.