Kaip naudoti strncpy () funkciją C++

Kaip Naudoti Strncpy Funkcija C



C++ yra daug funkcijų, skirtų eilėms ar simboliams kopijuoti iš vienos vietos į kitą, tai yra strcpy, strncpy ir memcpy. Jie skiriasi vienas nuo kito pagal savo funkcijas. Šioje pamokoje bus aptarta strncpy () funkcija C++.

Kas yra strncpy () funkcija C++

Funkcija strncpy () yra įmontuota C++ funkcija, naudojama nukopijuoti fiksuotą skaičių simbolių iš vienos eilutės į kitą. Funkcijai reikalingi trys parametrai: paskirties eilutė, kurioje bus simboliai, šaltinio eilutė, kurioje bus pateikti simboliai, ir nukopijuotinų simbolių skaičius. Jei šaltinio eilutė yra mažesnė nei nurodytas simbolių skaičius, paskirties eilutė bus užpildyta nuliniais simboliais iki likusio ilgio.

Strncpy() funkcijos prototipas pateiktas žemiau.







char * strncpy ( char * rankas konst char * src, dydis_t skaičiuoti ) ;

Kokie yra C++ strncpy() parametrai

Visi parametrai strncpy () funkcijos paaiškintos toliau.



  • ranka: Rodyklė į paskirties masyvą, į kurį buvo nukreiptas turinys
  • src: Rodyklė į šaltinio masyvą, iš kurio yra turinys
  • skaičiuoti: Didžiausias simbolių skaičius, kurį galima nukopijuoti iš šaltinio į paskirties vietą.

Kaip veikia strncpy() funkcija C++

strncpy () funkcija priima tris argumentus: dest, src, ir skaičiuoti . Ji patikrina, ar src eilutė yra nulinė, o jei taip, ji nukopijuoja nurodytą simbolių skaičių iš src eilutę prie pradėti styga. Jei skaičius yra mažesnis nei ilgis src eilutė, pirmieji simboliai buvo perkelti į pradėti eilutės ir nėra nulinės pabaigos. Jei skaičius viršija ilgį src , visi simboliai iš src yra nukopijuoti į pradėti , ir papildomi baigiamieji nuliniai simboliai buvo įtraukti, kol bus parašyti visi simboliai.



Pateiktas pavyzdys iliustruoja C++ veikimą strncpy () funkcija.





#include
#įtraukti
naudojant vardų erdvė std ;
tarpt pagrindinis ( )
{
char src_str [ ] = 'Aš rašau kodą strncpy' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << \n ;
grąžinti 0 ;
}

Šioje programoje mes naudojome antraštės failą, nes jame yra strncpy () funkcija. Mes apibrėžėme dvi eilutes, kurių viena yra src_str o kitas yra dest_str. strncpy () funkcija, kuri paima duomenis iš src_str eilutė ir nukopijuoja jį į dest_str . Čia strlen(src_str) naudojamas skaičiuojant bendrą simbolių skaičių iš src_str eilutė .

The išvestis Programa gali būti parodyta žemiau.



Kokios problemos kyla naudojant strncpy () programoje C++

  • Jei paskirties masyve nėra nulinio simbolio arba eilutė nėra nulinė, mūsų programa ar kodas anksčiau ar vėliau gali susidurti su problemomis. Ne nulinė eilutė C++ kalboje tapo rizikingu kodu, kuris gali nutrūkti bet kuriuo metu vykdant programą. Tai gali sukelti programos segmentavimo gedimą. Kaip rezultatas, strncpy () neužtikrina, kad paskirties eilutė visada būtų nulinė, todėl tai yra rizikingas programos, kurią rašome, kodas.
  • Šiai funkcijai nepavyksta patikrinti, ar nėra perpildymo, todėl jei bandome nukopijuoti šaltinio eilutę į paskirties vietą, kurios dydis yra mažesnis už šaltinį, gauname klaidą ir neapibrėžtą elgesį.

Išvada

Norėdami kopijuoti duomenis iš vienos eilutės į kitą, naudojame strncpy () C++, kuri yra įmontuota funkcija antraštės failą. Šiame straipsnyje aptarėme C++ sintaksę ir veikimą strncpy funkcija su pavyzdžiu. Taip pat pabrėžėme kai kurias problemas, dėl kurių strncpy funkcija gali padaryti mūsų kodą rizikingą.