Strncpy er også kjent som strengkopifunksjon. Det er en avgjørende funksjon som tilbys av C -språkets C -strengbibliotek. Strncpy er ansvarlig for å kopiere en del av en strengs innhold til en annen.
strncpy (String_a, String_b, 6) vil kopiere de første 6 tegnene av String “String_b” til strengen “String_a”. String_a er strengen som innholdet i strengen kopieres. Mens String_B er den som skal brukes til å hente de 6 første tegnene i strengen eller strengen som de første 6 tegnene skal kopieres.
I tilfelle lengden på strengen (som den delen av strengen vil bli kopiert fra er mindre enn strengen som strengen vil bli kopiert til), vil den ikke kopiere den komplette strengverdien til destinasjonsstrengen.
Syntaks
Syntaksen å ringe strncpy () funksjon er:
I syntaksen ovenfor, “Char*dest angir destinasjonen som strengen skal lagres. Den andre parameteren “const char*src ” er en standard på C som spesifiserer at src er en karakterpeker, og i den tredje parameteren gir vi størrelsen til vår funksjon for å definere hvor mange tegn i strengen som skal kopieres. Den andre parameteren kan ikke endres, og det er derfor den er konstant. I denne funksjonen lagrer vi en streng i kildeparameteren vår og kopierer den til enhver destinasjon representert som "dest". Gi deretter størrelsen på vår destinasjonsvariabel slik at funksjonen kopierer samme antall tegn fra strengen x. Vi kan også sende null til kildeparameteren.
Eksempel nr. 1:
I dette eksemplet har vi erklært to-tegn-matriser som er X og Y ved hjelp av en rekke størrelse 20 for “X” og 5 for “Y”. Vi har lagret streng “Hello World” i vår X -variabel som er vår kildevariabel.
Etter å ha erklært karaktergruppene våre, vil vi ringe vår strncpy funksjon for å kopiere vår ønskede streng til den andre. I strncpy, Vi passerte begge arrays -destinasjonen så vel som kildeoppstillingen sammen med størrelsen som strengen er kopiert.
I koden ovenfor er y vår destinasjonskarakterstreng som vi diskuterte tidligere i introduksjonen. Denne funksjonen har tre parametere: kilde, destinasjon og lengde. Vårt hovedmål er å kopiere strengverdien som vi har tildelt kildeoppstillingen vår “X” i vår destinasjonsarray “y”. Vi har gitt lengden på Y -variabelen som den tredje parameteren, slik at den kopierer det samme antallet tegn som for lengden på y. Bruker printf () Uttalelse, vi skriver ut den kopierte matrisen som utgang der %s brukes til å skrive ut strengen fra det første tegnet til null “\ 0” -tegn og “y” er den resulterende matrisen som må skrives ut.
Koden vår vil gi følgende utdata når den er utført. Som vi kan se i output, har den ikke kopiert hele setningen fordi vi ga den lengden på y som bare var 5, så den bare kopierte 5 tegn fra strengen.
Eksempel 2:
I det følgende eksemplet initialiserte vi først våre char -matriser kalt “A” og “B” til en fast størrelse på 6. Etter initialisering ga vi våre matriser til strncpy funksjon med lengden på strengen som den vil bli kopiert.
Når strncpy Kopierer innholdet i kilden til destinasjonen, den kopierer strengen uten å avslutte nullkarakteren. Her spesifiserer vi størrelsen på parameter B. Hele strengen vil bli kopiert til “B”. Strncpy Legger aldri til et \ 0 eller null -tegn på slutten når kildestørrelsen er lik destinasjonsstørrelsen, så vi må legge til \ 0 eller null -tegnet manuelt på slutten av karakteren vår "B".
Hvis vi tar en titt på utdataene våre, har vi kopiert strengverdien fra en karakter til et annet. Det er grunnen til at vi har produksjonen som "flott".
Eksempel nr. 3:
I kodeprøven nedenfor bruker vi metoden for å få matrisen kopiert til en konstant spesifisert verdi. For å gjøre det, vil vi først erklære de to strengvariablene. Vi har ikke tildelt noen streng til kildeoppstillingen vår ved hjelp av metoden Strcpy. Vi setter inn strengen manuelt til kildevariabelen “Stringb”. Kall deretter vår strncpy -funksjon der det første argumentet er destinasjonsvariabelen, og det andre er en kildevariabel. Men vi tildeler verdien til kilden vår også ved å bruke vår strncpy funksjon.
På linje 6 gjør vi en fullstendig kopi av strengen vår for å tilordne verdien til kilden vår. Etter at vi har tildelt verdien, kopierte vi Stringb -verdien til Stringa, som er vår destinasjon. Vi har gitt den en lengde på 7 som betyr at den bare vil kopiere de første 7 tegnene i kildestrengen vår.
Vi brukte printf () uttalelse, den ene for å skrive ut kildeverdien og den andre for å skrive ut destinasjonsverdien. Som vi kan se i output, er Stringa -verdien bare 7 tegn fordi vi kopierer, vi ga den en lengde på 7. Stringb skrev ut hele strengen fordi vi brukte Strcpy i stedet for strncpy funksjon som kopierte hele strengen.
Konklusjon
I denne guiden har vi lært om strncpy () -funksjonen til C -språket. Du kan utforske mer om strncpy () -funksjonen til C -biblioteket ved å bruke flere eksempler, du kan få en enda bedre forståelse ved å implementere den. Det gjorde oss i stand til å bruke en enkelt streng i en kode flere ganger i stedet for å skrive den igjen og igjen. Ved bare å tilordne den til en variabel reduserer kompleksiteten ved å gjenta verdier.