strcpy v C

ÚVOD:

strcpy je funkcia štandardnej knižnice C, ktorá kopíruje reťazec z jedného miesta na druhé. Je definovaný v hlavičkovom súbore string.h.

Funkcia má dva argumenty: cieľovú vyrovnávaciu pamäť, do ktorej sa uloží skopírovaný reťazec, a zdrojový reťazec, ktorý sa skopíruje. Funkcia skopíruje celý zdrojový reťazec vrátane ukončovacieho znaku null do cieľovej vyrovnávacej pamäte.

The C strcpy() funkciu kópie obsah reťazca na iný. Obsah cieľového reťazca bude vymenené so zdrojovým reťazcom pomocou funkcie strcpy(). Je definovaný vo vnútri hlavičkový súbor.

Syntax:

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

Parametre: Táto metóda akceptuje nasledujúce parametre:

    destination : Ukazovateľ na cieľové pole znakov, kam sa má obsah skopírovať. source: Ukazovateľ na pole zdrojových znakov, ktoré sa majú skopírovať.

Návratová hodnota: A ukazovateľ na cieľ string sa vráti po tom, čo funkcia strcpy() skopíruje zdrojový reťazec.

Príklad: 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;> }>

Výkon

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

PRÍKLAD 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;> }>

Výkon

str1: Hello str2: Hello 

Dôležité body

  • Pomocou tejto funkcie môžete skopírovať celý reťazec do cieľového reťazca. Zdrojové reťazce sa nepripájajú k cieľovým reťazcom. Výsledkom je, že obsah cieľového reťazca je nahradený obsahom zdrojového reťazca.
  • Zdrojové reťazce nie sú ovplyvnené. Po skopírovaní zostáva zdrojový reťazec rovnaký.
  • Ak chcete použiť strcpy(), reťazec.h musí byť zahrnutý hlavičkový súbor.
  • V prípade dlhšieho zdrojového reťazca (Character Array) vykoná strcpy() nedefinované správanie.

VÝHODY A NEVÝHODY:

Niektoré výhody používania strcpy v C zahŕňajú:

Je to jednoduchá a ľahko použiteľná funkcia, ktorú možno použiť na rýchle a jednoduché kopírovanie reťazcov.
Je to štandardná funkcia knižnice, takže je široko dostupná a prenosná na rôznych platformách a kompilátoroch.
Je relatívne rýchly, pretože na jeho skopírovanie je potrebný iba jeden prechod cez zdrojový reťazec.

Pri používaní strcpy je však potrebné zvážiť aj niekoľko nevýhod:

Nekontroluje veľkosť cieľovej vyrovnávacej pamäte, takže je možné prepísať vyrovnávaciu pamäť a spôsobiť pretečenie vyrovnávacej pamäte, ak je zdrojový reťazec dlhší ako cieľová vyrovnávacia pamäť. To môže viesť k bezpečnostným chybám a iným problémom.
Nezvláda správne prekrývajúce sa reťazce. Ak sa zdrojový a cieľový reťazec prekrývajú, správanie strcpy nie je definované.
Nepracuje správne s nulovými znakmi v zdrojovom reťazci. Ak zdrojový reťazec obsahuje nulový znak, strcpy zastaví kopírovanie v tomto bode, aj keď sú v zdrojovom reťazci ďalšie znaky.