Što je funkcija strncpy() u C++
Funkcija strncpy() je ugrađena C++ funkcija koja se koristi za kopiranje fiksne količine znakova iz jednog niza u drugi. Funkcija treba tri parametra: odredišni niz koji će sadržavati znakove, izvorni niz koji će dati znakove i broj znakova za kopiranje. Ako je izvorni niz manji od navedenog broja znakova, odredišni niz bit će dopunjen nultim znakovima do preostale duljine.
Prototip funkcije strncpy() dan je u nastavku.
char * strncpy ( char * ruke konst char * src, veličina_t računati ) ;
Koji su parametri C++ strncpy()
Svi parametri od strncpy() funkcije objašnjene su u nastavku.
- ruka: Pokazivač na odredišni niz na kojem je sadržaj bio
- src: Pokazivač na izvorni niz iz kojeg je sadržaj
- računati: Najveći broj znakova koji se mogu kopirati od izvora do odredišta.
Kako funkcija strncpy() radi u C++
strncpy() funkcija prihvaća tri argumenta: odredište, src, i računati . Provjerava je li src string završava nulom, a ako da, kopira navedeni broj znakova iz src niz na početak niz. Ako je broj manji od duljine src niz, prvi znakovi brojača su prebačeni u početak niz i nisu nul-terminirani. Ako broj premašuje duljinu src , svi likovi iz src se kopiraju u početak , a dodatni završni znakovi nule uključeni su dok se ne upišu svi znakovi brojanja.
Navedeni primjer ilustrira rad C++ strncpy() funkcija.
#include
#include
korištenjem imenski prostor std ;
int glavni ( )
{
char src_str [ ] = 'Pišem kod za strncpy' ;
char odredišna_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << odredišna_str << ' \n ' ;
povratak 0 ;
}
U ovom programu koristili smo
The izlaz programa može se prikazati u nastavku.
Koji su problemi s korištenjem strncpy() u C++
- Ako nema null znaka u odredišnom nizu ili niz nije null-terminiran, naš program ili kod mogu naići na probleme prije ili kasnije. Niz koji nije završio nullom u C++-u postao je rizičan kod koji se može pokvariti u bilo kojem trenutku tijekom izvođenja programa. To može rezultirati pogreškom segmentacije u programu. Kao rezultat, strncpy() ne osigurava da odredišni niz uvijek završava nultom, što ga čini rizičnim kodom za program koji pišemo.
- Ova funkcija ne uspijeva provjeriti prekoračenje, pa ako pokušamo kopirati izvorni niz na odredište koje je manje veličine od izvora, dobivamo pogrešku i nedefinirano ponašanje.
Zaključak
Za kopiranje podataka iz jednog niza u drugi koristimo strncpy() u C++ koji je ugrađena funkcija u