Какво представлява функцията strncpy() в C++
Функцията strncpy() е вградена C++ функция, която се използва за копиране на фиксирано количество знаци от един низ в друг. Функцията се нуждае от три параметъра: целевия низ, който ще съдържа знаците, изходният низ, който ще предостави знаците, и броя знаци за копиране. Ако изходният низ е по-малък от указания брой знаци, целевият низ ще бъде допълнен с нулеви знаци до оставащата дължина.
Прототипът на функция strncpy() е даден по-долу.
въглен * strncpy ( въглен * ръце конст въглен * src, размер_т броя ) ;
Какви са параметрите на C++ strncpy()
Всички параметри на strncpy() функция са обяснени по-долу.
- ръка: Указател към целевия масив, към който е било съдържанието
- src: Указател към изходния масив, от който е съдържанието
- броя: Най-големият брой знаци, които могат да бъдат копирани от източника към местоназначението.
Как работи функцията strncpy() в C++
strncpy() функцията приема три аргумента: dest, src, и броя . Той проверява дали src низът е с нулев край и ако да, той копира указания брой знаци от src низ към започнете низ. Ако броят е по-малък от дължината на src низ, към който са прехвърлени първите символи за броене започнете низ и не завършват с нула. Ако броят надвишава дължината на src , всички знаци от src се копират в започнете и допълнителни завършващи нулеви знаци са включени, докато не бъдат записани всички знаци за броене.
Даденият пример илюстрира работата на C++ strncpy() функция.
#include
#include
използвайки пространство от имена std ;
вътр основен ( )
{
въглен src_str [ ] = „Пиша код за strncpy“ ;
въглен dest_str [ 60 ] ;
strncpy ( dest_str, src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \н ' ;
връщане 0 ;
}
В тази програма използвахме <низ.h> заглавен файл, защото включва strncpy() функция. Дефинирахме два низа, единият е src_str а другото е dest_str. strncpy() функция, която взема данни от src_str низ и го копира в dest_str . Тук strlen(src_str) се използва за преброяване на общия брой знаци от src_str низ .
The изход на програмата може да се покаже по-долу.
Какви са проблемите с използването на strncpy() в C++
- Ако няма нулев знак в целевия масив или низът не е завършен с нула, нашата програма или код може да срещне проблеми рано или късно. Низ с краен ненулев код в C++ се превърна в рисков код, който може да се счупи във всеки момент по време на изпълнение на програмата. Това може да доведе до грешка в сегментирането в програмата. Като резултат, strncpy() не гарантира, че целевият низ винаги е завършен с нула, което го прави рисков код за програмата, която пишем.
- Тази функция не успява да провери за препълване, така че ако се опитаме да копираме изходния низ към дестинация, която е по-малка по размер от източника, получаваме грешка и недефинирано поведение.
Заключение
За да копираме данни от един низ в друг, използваме strncpy() в C++, което е вградена функция в <низ.h> заглавен файл. В тази статия обсъдихме синтаксиса и работата на C++ strncpy функция с пример. Също така подчертахме някои проблеми, поради които strncpy може да направи нашия код рискован.