Mi az strncpy() függvény a C++-ban
Az strncpy() függvény egy beépített C++ függvény, amellyel rögzített mennyiségű karaktert másol az egyik karakterláncból a másikba. A függvénynek három paraméterre van szüksége: a cél karakterláncra, amely tartalmazza a karaktereket, a forrás karakterláncra, amely a karaktereket biztosítja, és a másolandó karakterek számát. Ha a forráskarakterlánc kevesebb, mint a megadott számú karakter, a célkarakterlánc a maradék hosszig üres karakterekkel lesz kitöltve.
Az alábbiakban egy strncpy() függvény prototípusa látható.
char * strncpy ( char * kezek const char * src, size_t számol ) ;
Mik a C++ strncpy() paraméterei
Minden paramétere strncpy() funkciót alább ismertetjük.
- kéz: Egy mutató arra a céltömbre, amelyhez a tartalom került
- src: Egy mutató arra a forrástömbre, amelyből a tartalom származik
- számol: A forrásból a célhelyre másolható karakterek legnagyobb száma.
Hogyan működik az strncpy() függvény C++-ban
strncpy() függvény három argumentumot fogad el: cél, src, és számol . Ellenőrzi, hogy a src karakterlánc null-végű, és ha igen, akkor a megadott számú karaktert másolja a src húr a Rajt húr. Ha a szám kisebb, mint a hossza src karakterlánc, az első számjegyek átkerültek ide Rajt karakterláncot, és nem null-végződésűek. Ha a szám meghaladja a hosszát src , az összes karakter innen src ide vannak másolva Rajt , és extra befejező null karakterek kerültek bele mindaddig, amíg az összes számláló karaktert meg nem írják.
Az alábbi példa a C++ működését szemlélteti strncpy() funkció.
#include
#include
segítségével névtér std ;
int fő- ( )
{
char src_str [ ] = 'Kódot írok az strncpy számára' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
Visszatérés 0 ;
}
Ebben a programban használtuk
A Kimenet a program bemutatása alább látható.
Melyek a problémák az strncpy() használatával a C++ nyelven
- Ha a céltömbben nincs null karakter, vagy a karakterlánc nem null-végű, akkor programunk vagy kódunk előbb-utóbb problémákba ütközhet. A C++-ban egy nem nulla végű karakterlánc kockázatos kód lett, amely a program végrehajtása során bármikor eltörhet. Ez szegmentációs hibát okozhat a programban. Ennek eredményeként strncpy() nem biztosítja, hogy a cél karakterlánc mindig null-végű legyen, ami kockázatos kódot jelent az éppen írt program számára.
- Ez a függvény nem tudja ellenőrizni a túlcsordulást, így ha a forrás karakterláncot a forrásnál kisebb méretű célhelyre próbáljuk másolni, hibát és meghatározatlan viselkedést kapunk.
Következtetés
Az adatok egyik karakterláncból a másikba másolásához használjuk strncpy() C++-ban, ami egy beépített függvény