Az strncpy() függvény használata C++-ban

Az Strncpy Fuggveny Hasznalata C Ban



A C++-ban számos funkció található a karakterláncok vagy karakterek egyik helyről a másikra másolására, ezek a strcpy, strncpy és memcpy. Funkcióik szerint különböznek egymástól. Ez az oktatóanyag a strncpy() függvény C++ nyelven.

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 fejlécfájlt, mert tartalmazza strncpy() funkció. Két karakterláncot határoztunk meg, az egyik src_str a másik pedig az dest_str. strncpy() adatot gyűjtő funkció src_str karakterlánc és átmásolja a dest_str . Itt strlen(src_str) a karakterek teljes számának megszámlálására szolgál src_str karakterlánc .

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 fejléc fájl. Ebben a cikkben a C++ szintaxisát és működését tárgyaltuk strncpy függvényt egy példával. Kiemeltünk néhány olyan problémát is, amelyek miatt a strncpy függvény kockázatossá teheti kódunkat.