Hvordan bruke strncpy -funksjon i C ++

Hvordan bruke strncpy -funksjon i C ++
Det er mange funksjoner i C ++ for å kopiere strenger eller tegn fra et sted til et annet, som er strcpy, strncpy og memcpy. De er forskjellige fra hverandre i henhold til deres funksjonaliteter. 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 en fast mengde tegn fra en streng til en annen. Funksjonen trenger tre parametere: destinasjonsstrengen som holder tegnene, kildestrengen som vil gi tegnene og tellingen av tegn til å kopiere. Hvis kildestrengen er mindre enn det spesifiserte antallet tegn, vil destinasjonsstrengen bli polstret med nulltegn til den gjenværende lengden.

Prototypen til en strncpy () -funksjon er gitt nedenfor.

char *strncpy (char *dest, const char *src, size_t count);

Hva er parametrene til C ++ strncpy ()

Alle parametere av strncpy () Funksjonen blir forklart nedenfor.

  • dest: En peker til destinasjonsarrayen som innholdet har vært
  • SRC: En peker til kildeoppstillingen som innholdet er
  • telle: Det høyeste antallet tegn som kan kopieres fra kilden til destinasjon.

Hvordan fungerer strncpy () funksjon i c++

strncpy () Funksjon godtar tre argumenter: dest, src, og telle. Det sjekker om src streng er null-avsluttet, og hvis ja, kopierer den det spesifiserte antallet tegn fra src streng til DEST streng. Hvis tellingen er mindre enn lengden på src streng, de første tellekarakterene er overført til DEST streng og er ikke null-terminert. Hvis tellingen overstiger lengden på src, alle karakterer fra src er kopiert til DEST, og ekstra avsluttende null -tegn er inkludert til alle tellekarakterene er skrevet.

Det gitte eksemplet illustrerer arbeidet med C++ strncpy () funksjon.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

char src_str [] = "Jeg skriver en kode for strncpy";
char dest_str [60];
strncpy (dest_str, src_str, strlen (src_str));
cout<retur 0;

I dette programmet brukte vi overskriftsfil fordi den inkluderer strncpy () funksjon. Vi definerte to strenger en er src_str Og den andre er dest_str. strncpy () funksjon som tar data fra SRC_STR -streng og kopierer det 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 noen null-tegn i destinasjonsarrayen eller strengen ikke er null-avsluttet, kan vårt program eller kode møte problemer før eller siden. En ikke-null avsluttet streng i C ++ har blitt risikofylt kode som kan bryte når som helst under utførelsen av programmet. Det kan føre til en segmenteringsfeil i programmet. Som et resultat, strncpy () sikrer ikke at destinasjonsstrengen alltid er null-avsluttet, noe som gjør den til risikabel kode for programmet vi skriver.
  • Denne funksjonen klarer ikke å se etter 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 headerfil. I denne artikkelen har vi diskutert syntaks og arbeid av C++ strncpy funksjon med et eksempel. Vi fremhevet også noen problemer på grunn av hvilke strncpy funksjon kan gjøre koden vår risikabel.