Hva er strncpy()-funksjonen i C++
Strncpy()-funksjonen er en innebygd C++-funksjon som brukes til å kopiere et fast antall tegn fra en streng til en annen. Funksjonen trenger tre parametere: målstrengen som skal inneholde tegnene, kildestrengen som skal gi tegnene, og antall tegn som skal kopieres. Hvis kildestrengen er mindre enn det angitte antallet tegn, vil målstrengen fylles med null-tegn til gjenværende lengde.
Prototypen til en strncpy()-funksjon er gitt nedenfor.
røye * strncpy ( røye * hender konst røye * src, størrelse_t telle ) ;
Hva er parametrene til C++ strncpy()
Alle parametere til strncpy() funksjonen er forklart nedenfor.
- hånd: En peker til destinasjonsmatrisen som innholdet har vært til
- src: En peker til kildematrisen som innholdet er fra
- telle: Det høyeste antallet tegn som kan kopieres fra kilden til destinasjonen.
Hvordan fungerer strncpy()-funksjonen i C++
strncpy() funksjon aksepterer tre argumenter: dest, src, og telle . Den sjekker om src strengen er null-terminert, og hvis ja, kopierer den det angitte antallet tegn fra src streng til start streng. Hvis tellingen er mindre enn lengden på src streng, har de første telletegnene blitt overført til start streng og er ikke null-terminert. Hvis tellingen overstiger lengden på src , alle karakterer fra src er kopiert til start , og ekstra avsluttende nulltegn er inkludert inntil alle telletegnene er skrevet.
Det gitte eksemplet illustrerer hvordan C++ fungerer strncpy() funksjon.
#include
#include
ved hjelp av navneområde std ;
int hoved- ( )
{
røye src_str [ ] = 'Jeg skriver en kode for strncpy' ;
røye dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
komme tilbake 0 ;
}
I dette programmet brukte vi
De produksjon av programmet kan vises nedenfor.
Hva er problemene med å bruke strncpy() i C++
- Hvis det ikke er noe nulltegn i destinasjonsmatrisen eller strengen ikke er nullterminert, kan programmet eller koden vår støte på problemer før eller senere. En ikke-null-terminert streng i C++ har blitt risikabel kode som kan gå i stykker når som helst under programkjøring. Det kan resultere i en segmenteringsfeil i programmet. Som et resultat, strncpy() sikrer ikke at destinasjonsstrengen alltid er null-terminert, noe som gjør det til risikabel kode for programmet vi skriver.
- Denne funksjonen klarer ikke å sjekke for overløp, så hvis vi prøver å kopiere kildestrengen til en destinasjon som er mindre i størrelse enn kilden, får vi en feil og udefinert oppførsel.
Konklusjon
For å kopiere data fra en streng til en annen bruker vi strncpy() i C++ som er en innebygd funksjon i