logo

strcpy C:ssä

JOHDANTO:

strcpy on C-standardikirjastofunktio, joka kopioi merkkijonon paikasta toiseen. Se määritellään string.h-otsikkotiedostossa.

Funktiolla on kaksi argumenttia: kohdepuskuri, johon kopioitu merkkijono tallennetaan, ja lähdemerkkijono, joka kopioidaan. Funktio kopioi koko lähdemerkkijonon, mukaan lukien nollapääte, kohdepuskuriin.



sdlc

The C strcpy() toiminto kopioita merkkijonon sisällöstä toiseen. Kohdemerkkijonon sisältö on vaihdettu lähdemerkkijonon kanssa strcpy()-funktiolla. Se on määritelty sisällä otsikkotiedosto.

Syntaksi:

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

Parametrit: Tämä menetelmä hyväksyy seuraavat parametrit:



    kohde: Osoitin kohdemerkkijonoa, johon sisältö kopioidaan. lähde: Osoitin kopioitavaan lähdemerkkijonoon.

Palautusarvo: A osoitin määränpäähän string palautetaan sen jälkeen, kun strcpy()-funktio on kopioinut lähdemerkkijonon.

Esimerkki: 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;> }>

>

>

koneella päivämäärä ja aika
Lähtö

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

ESIMERKKI 2:

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;> }>

merkkijono int:hen javassa
>

>

Lähtö

str1: Hello str2: Hello>

Tärkeitä kohtia

  • Tämän toiminnon avulla voit kopioida koko merkkijonon kohdemerkkijonoon. Lähdemerkkijonoja ei lisätä kohdemerkkijonoihin. Tämän seurauksena kohdemerkkijonon sisältö korvataan lähdemerkkijonon sisällöllä.
  • Tämä ei vaikuta lähdemerkkijonoihin. Kopioinnin jälkeen lähdemerkkijono pysyy samana.
  • Jos haluat käyttää strcpy(), merkkijono.h otsikkotiedosto on sisällytettävä.
  • Jos kyseessä on pidempi lähdemerkkijono (Character Array), strcpy() suorittaa määrittelemättömän toiminnan.

HYÖDYT JA HAITAT:

Joitakin etuja strcpyn käytöstä C:ssä ovat:

Se on yksinkertainen ja helppokäyttöinen toiminto, jolla voidaan kopioida merkkijonoja nopeasti ja helposti.
Se on vakiokirjastotoiminto, joten se on laajalti saatavilla ja kannettava eri alustoilla ja kääntäjillä.
Se on suhteellisen nopea, koska sen kopioiminen vaatii vain yhden läpikäynnin lähdemerkkijonon läpi.

Strcpy:n käytössä on kuitenkin myös joitain haittoja:

Se ei tarkista kohdepuskurin kokoa, joten on mahdollista ylikirjoittaa puskuri ja aiheuttaa puskurin ylivuoto, jos lähdemerkkijono on pidempi kuin kohdepuskuri. Tämä voi johtaa tietoturva-aukoihin ja muihin ongelmiin.
Se ei käsittele päällekkäisiä merkkijonoja kunnolla. Jos lähde- ja kohdemerkkijonot menevät päällekkäin, strcpy:n käyttäytyminen on määrittelemätön.
Se ei käsittele lähdemerkkijonon tyhjämerkkejä oikein. Jos lähdemerkkijono sisältää tyhjän merkin, strcpy lopettaa kopioinnin tässä vaiheessa, vaikka lähdemerkkijonossa olisi lisämerkkejä.