Что такое функция 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 может сделать наш код рискованным.