Kuidas kasutada strncpy() funktsiooni C++-s

Kuidas Kasutada Strncpy Funktsiooni C S



C++-s on stringide või märkide ühest kohast teise kopeerimiseks palju funktsioone, milleks on strcpy, strncpy ja memcpy. Need erinevad üksteisest oma funktsioonide poolest. Selles õpetuses käsitletakse strncpy() funktsioon C++ keeles.

Mis on strncpy() funktsioon C++ keeles

Funktsioon strncpy() on sisseehitatud C++ funktsioon, mida kasutatakse kindla hulga märkide kopeerimiseks ühest stringist teise. Funktsioon vajab kolme parameetrit: sihtstring, mis sisaldab märke, lähtestring, mis annab märgid, ja kopeeritavate märkide arv. Kui lähtestring on määratud märkide arvust väiksem, täidetakse sihtkoha string ülejäänud pikkusega nullmärkidega.

Allpool on toodud funktsiooni strncpy() prototüüp.







char * strncpy ( char * käed konst char * src, suurus_t loendama ) ;

Mis on C++ strncpy() parameetrid

Kõik parameetrid strncpy() funktsiooni selgitatakse allpool.



  • käsi: Kursor sihtmassiivile, kuhu sisu on viidud
  • src: Osuti lähtemassiivile, kust sisu pärineb
  • arv: Suurim märkide arv, mida saab allikast sihtkohta kopeerida.

Kuidas funktsioon strncpy() töötab C++-s

strncpy() funktsioon aktsepteerib kolme argumenti: siht, src, ja loendama . See kontrollib, kas src string on null-lõpuga ja kui jah, siis kopeerib see määratud arvu tähemärke failist src stringi juurde alustada string. Kui arv on väiksem kui pikkus src string, esimesed tähemärgid on üle kantud alustada string ja ei ole null-lõpuga. Kui arv ületab pikkuse src , kõik tegelased alates src on kopeeritud alustada , ja täiendavad lõpetavad nullmärgid on lisatud seni, kuni kõik loendusmärgid on kirjutatud.



Antud näide illustreerib C++ tööd strncpy() funktsiooni.





#include
#include
kasutades nimeruum std ;
int peamine ( )
{
char src_str [ ] = 'Ma kirjutan strncpy koodi' ;
char dest_str [ 60 ] ;
strncpy ( siht_str, src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
tagasi 0 ;
}

Selles programmis kasutasime päisefail, kuna see sisaldab strncpy() funktsiooni. Me määratlesime kaks stringi, millest üks on src_str ja teine ​​on dest_str. strncpy() funktsioon, mis võtab andmeid src_str string ja kopeerib selle kausta dest_str . Siin strlen(src_str) kasutatakse märkide koguarvu loendamiseks src_str string .

The väljund programmi saab näidata allpool.



Millised on probleemid strncpy() kasutamisega C++-s

  • Kui sihtmassiivis pole nullmärki või string ei ole null-lõpuga, võib meie programmis või koodis varem või hiljem probleeme tekkida. Mitte-null-lõpetatud string C++-s on muutunud riskantseks koodiks, mis võib programmi täitmise ajal igal hetkel puruneda. Selle tulemuseks võib olla programmis segmenteerimisvea. Tulemusena, strncpy() ei taga, et sihtstring on alati null-lõpuga, muutes selle kirjutatava programmi jaoks riskantseks.
  • See funktsioon ei kontrolli ületäitumist, nii et kui proovime lähtestringi kopeerida sihtkohta, mis on allikast väiksem, saame veateate ja määratlemata käitumise.

Järeldus

Andmete kopeerimiseks ühest stringist teise kasutame strncpy() keeles C++, mis on sisseehitatud funktsioon päisefail. Selles artiklis oleme arutanud C++ süntaksit ja tööd strncpy funktsiooni näitega. Samuti tõime esile mõned probleemid, mille tõttu strncpy funktsioon võib muuta meie koodi riskantseks.