Ako používať funkciu strncpy() v C++

Ako Pouzivat Funkciu Strncpy V C



V C++ existuje veľa funkcií na kopírovanie reťazcov alebo znakov z jedného miesta na druhé, ktorými sú strcpy, strncpy a memcpy. Líšia sa od seba svojimi funkciami. Tento tutoriál bude diskutovať o strncpy() funkciu v C++.

Čo je funkcia strncpy() v C++

Funkcia strncpy() je vstavaná funkcia C++, ktorá sa používa na kopírovanie pevného množstva znakov z jedného reťazca do druhého. Funkcia potrebuje tri parametre: cieľový reťazec, ktorý bude obsahovať znaky, zdrojový reťazec, ktorý poskytne znaky, a počet znakov na kopírovanie. Ak je zdrojový reťazec menší ako zadaný počet znakov, cieľový reťazec bude doplnený prázdnymi znakmi na zostávajúcu dĺžku.

Prototyp funkcie strncpy() je uvedený nižšie.







char * strncpy ( char * ruky konšt char * src, size_t počítať ) ;

Aké sú parametre C++ strncpy()

Všetky parametre strncpy() funkcie sú vysvetlené nižšie.



  • ruka: Ukazovateľ na cieľové pole, do ktorého sa obsah dostal
  • src: Ukazovateľ na zdrojové pole, z ktorého pochádza obsah
  • počítať: Najvyšší počet znakov, ktoré možno skopírovať zo zdroja do cieľa.

Ako funguje funkcia strncpy() v C++

strncpy() funkcia akceptuje tri argumenty: dest, src, a počítať . Kontroluje, či src reťazec je ukončený nulou a ak áno, skopíruje zadaný počet znakov z src reťazec k začať reťazec. Ak je počet menší ako dĺžka src reťazec, do ktorého boli prenesené prvé počítacie znaky začať reťazec a nie sú ukončené nulou. Ak počet presahuje dĺžku src , všetky postavy z src sú skopírované do začať , a boli zahrnuté ďalšie ukončovacie nulové znaky, kým sa nezapíšu všetky počítacie znaky.



Uvedený príklad ilustruje fungovanie C++ strncpy() funkciu.





#include
#include
použitím menný priestor std ;
int Hlavná ( )
{
char src_str [ ] = 'Píšem kód pre strncpy' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
vrátiť 0 ;
}

V tomto programe sme použili hlavičkový súbor, pretože obsahuje strncpy() funkciu. Definovali sme dva reťazce, jeden je src_str a druhý je dest_str. strncpy() funkcia, ktorá preberá dáta reťazec src_str a skopíruje ho do dest_str . Tu strlen(src_str) sa používa na počítanie celkového počtu znakov z reťazec src_str .

The výkon programu je možné zobraziť nižšie.



Aké sú problémy s používaním strncpy() v C++

  • Ak v cieľovom poli nie je žiadny znak null alebo reťazec nie je ukončený nulou, náš program alebo kód môže skôr či neskôr naraziť na problémy. Nenulový ukončený reťazec v C++ sa stal rizikovým kódom, ktorý sa môže kedykoľvek počas vykonávania programu zlomiť. Môže to mať za následok chybu segmentácie v programe. Ako výsledok, strncpy() nezabezpečuje, že cieľový reťazec je vždy ukončený nulou, čo z neho robí riskantný kód pre program, ktorý píšeme.
  • Táto funkcia zlyhá pri kontrole pretečenia, takže ak sa pokúsime skopírovať zdrojový reťazec do cieľa, ktorý je menší ako zdroj, dostaneme chybu a nedefinované správanie.

Záver

Na kopírovanie údajov z jedného reťazca do druhého používame strncpy() v C++, čo je vstavaná funkcia hlavičkový súbor. V tomto článku sme diskutovali o syntaxi a fungovaní C++ strncpy funkciu s príkladom. Zdôraznili sme aj niektoré problémy, kvôli ktorým strncpy môže spôsobiť, že náš kód bude riskantný.