Hvordan bruke strncpy()-funksjonen i C++

Hvordan Bruke Strncpy Funksjonen I C



Det er mange funksjoner i C++ for å kopiere strenger eller tegn fra ett sted til et annet, som er strcpy, strncpy og memcpy. De er forskjellige fra hverandre i henhold til deres funksjoner. Denne opplæringen vil diskutere strncpy() funksjon i C++.

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 header-fil fordi den inkluderer strncpy() funksjon. Vi definerte to strenger en er src_str og den andre er dest_str. strncpy() funksjon som henter data fra src_str streng og kopierer den til dest_str . Her strlen(src_str) brukes til å telle det totale antallet tegn fra src_str streng .

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 header-fil. I denne artikkelen har vi diskutert syntaks og virkemåte for C++ strncpy funksjon med et eksempel. Vi har også fremhevet noen problemer som skyldes strncpy funksjon kan gjøre koden vår risikabel.