logo

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.

java system.out.println

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

systémový softvér
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;> }>

vymazať vyrovnávaciu pamäť npm
>

>

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.