Kaj je funkcija strncpy() v C++
Funkcija strncpy() je vgrajena funkcija C++, ki se uporablja za kopiranje določenega števila znakov iz enega niza v drugega. Funkcija potrebuje tri parametre: ciljni niz, ki bo vseboval znake, izvorni niz, ki bo zagotovil znake, in število znakov za kopiranje. Če je izvorni niz krajši od podanega števila znakov, bo ciljni niz do preostale dolžine dopolnjen z ničelnimi znaki.
Spodaj je podan prototip funkcije strncpy().
char * strncpy ( char * roke konst char * src, velikost_t štetje ) ;
Kakšni so parametri C++ strncpy()
Vsi parametri za strncpy() funkcije so razložene spodaj.
- roka: Kazalec na ciljno matriko, do katere je bila vsebina
- src: Kazalec na izvorno matriko, iz katere je vsebina
- štetje: Največje število znakov, ki jih je mogoče kopirati iz vira v cilj.
Kako deluje funkcija strncpy() v C++
strncpy() funkcija sprejme tri argumente: dest, src, in štetje . Preveri, ali je src niz je ničelno končan, in če da, kopira podano število znakov iz src niz na začetek vrvica. Če je število manjše od dolžine src niz, so bili prvi znaki štetja preneseni v začetek niz in se ne končajo z ničlo. Če število presega dolžino src , vsi znaki iz src se kopirajo v začetek , in dodatni zaključni ničelni znaki so bili vključeni, dokler niso zapisani vsi znaki za štetje.
Navedeni primer ponazarja delovanje C++ strncpy() funkcijo.
#include
#include
uporabo imenski prostor std ;
int glavni ( )
{
char src_str [ ] = 'Pišem kodo za strncpy' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
vrnitev 0 ;
}
V tem programu smo uporabili
The izhod programa si lahko ogledate spodaj.
Kakšne so težave z uporabo strncpy() v C++
- Če v ciljni matriki ni ničelnega znaka ali niz ni ničelno prekinjen, lahko naš program ali koda prej ali slej naleti na težave. Niz, ki se konča z ničelo, je v C++ postal tvegana koda, ki se lahko prekine kadar koli med izvajanjem programa. To lahko povzroči napako segmentacije v programu. Kot rezultat, strncpy() ne zagotavlja, da je ciljni niz vedno ničelno končan, zaradi česar je tvegana koda za program, ki ga pišemo.
- Ta funkcija ne preveri prelivanja, tako da, če poskusimo kopirati izvorni niz na cilj, ki je manjši od vira, dobimo napako in nedefinirano vedenje.
Zaključek
Za kopiranje podatkov iz enega niza v drugega uporabljamo strncpy() v C++, ki je vgrajena funkcija v