logo

strcpy v C

UVOD:

strcpy je funkcija standardne knjižnice C, ki kopira niz z ene lokacije na drugo. Definiran je v datoteki glave string.h.

Funkcija sprejme dva argumenta: ciljni medpomnilnik, kamor bo shranjen kopirani niz, in izvorni niz, ki bo kopiran. Funkcija kopira celoten izvorni niz, vključno z ničelnim zaključkom, v ciljni medpomnilnik.



končni stroj

The C strcpy() funkcijo izvodov vsebino niza v drugega. Vsebina ciljnega niza bo zamenjal s tistim izvornega niza s funkcijo strcpy(). Določeno je znotraj naslovna datoteka.

Sintaksa:

char* strcpy(char* destination, const char* source);>

Parametri: Ta metoda sprejema naslednje parametre:



    destinacija : Kazalec na ciljno matriko znakov, kamor naj bo vsebina kopirana. vir: Kazalec na izvorno niz znakov, ki ga želite kopirati.

Povratna vrednost: A kazalec do cilja niz je vrnjen po tem, ko funkcija strcpy() prekopira izvorni niz.

Primer: 1

C






// C program to illustrate> // strcpy() function in C> #include> #include> int> main()> {> >char> str1[] =>'Hello World!'>;> >char> str2[] =>'GfG'>;> >char> str3[40];> >char> str4[40];> >char> str5[] =>'GeeksForGeeks'>;> >strcpy>(str2, str1);> >strcpy>(str3,>'Copy successful'>);> >strcpy>(str4, str5);> >printf>(>'str1: %s str2: %s str3: %s str4:%s '>, str1,> >str2, str3, str4);> >return> 0;> }>

>

>

Izhod

str1: Hello World! str2: Hello World! str3: Copy successful str4:GeeksForGeeks>

PRIMER 2:

trikratna zima

C




#include> #include> int> main()> {> >char> str1[20] =>'Hello'>;> >char> str2[20];> >strcpy>(str2, str1);> >printf>(>'str1: %s '>, str1);> >printf>(>'str2: %s '>, str2);> >return> 0;> }>

počisti predpomnilnik npm
>

>

Izhod

str1: Hello str2: Hello>

Pomembne točke

  • S to funkcijo lahko kopirate celoten niz v ciljni niz. Izvorni nizi niso dodani ciljnim nizom. Posledično se vsebina ciljnega niza nadomesti z vsebino izvornega niza.
  • Izvorni nizi niso prizadeti. Po kopiranju izvorni niz ostane enak.
  • Za uporabo strcpy(), je niz.h mora biti vključena datoteka glave.
  • V primeru daljšega izvornega niza (matrika znakov) se strcpy() obnaša nedefinirano.

PREDNOSTI IN SLABOSTI:

Nekatere prednosti uporabe strcpy v C vključujejo:

Je preprosta in za uporabo enostavna funkcija, s katero lahko hitro in enostavno kopirate nize.
Je standardna knjižnična funkcija, zato je široko dostopna in prenosljiva na različnih platformah in prevajalnikih.
Je razmeroma hiter, saj za kopiranje zahteva le en prehod skozi izvorni niz.

Vendar pa je pri uporabi strcpy treba upoštevati tudi nekaj pomanjkljivosti:

Ne preverja velikosti ciljnega medpomnilnika, zato je možno prepisati medpomnilnik in povzročiti prekoračitev medpomnilnika, če je izvorni niz daljši od ciljnega medpomnilnika. To lahko povzroči varnostne ranljivosti in druge težave.
Ne obravnava pravilno prekrivajočih se nizov. Če se izvorni in ciljni nizi prekrivajo, je vedenje strcpy nedefinirano.
Ne obravnava pravilno ničelnih znakov v izvornem nizu. Če izvorni niz vsebuje ničelni znak, bo strcpy na tej točki ustavil kopiranje, tudi če so v izvornem nizu dodatni znaki.