Kako koristiti funkciju strncpy() u C++

Kako Koristiti Funkciju Strncpy U C



Postoje mnoge funkcije u C++ za kopiranje nizova ili znakova s ​​jednog mjesta na drugo, a to su strcpy, strncpy i memcpy. Međusobno se razlikuju prema svojim funkcijama. U ovom će se vodiču raspravljati o strncpy() funkcija u C++.

Š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 datoteku zaglavlja jer uključuje strncpy() funkcija. Definirali smo dva niza, jedan je src_str a drugi je odredišna_str. strncpy() funkcija koja preuzima podatke iz src_str niz i kopira ga u odredišna_str . Ovdje strlen(src_str) koristi se za brojanje ukupnog broja znakova iz src_str niz .

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 datoteka zaglavlja. U ovom smo članku raspravljali o sintaksi i radu C++-a strncpy funkcija s primjerom. Također smo istaknuli neke probleme zbog kojih je strncpy funkcija može naš kod učiniti riskantnim.