logo

strcpy v C

ÚVOD:

strcpy je funkce standardní knihovny C, která kopíruje řetězec z jednoho umístění do druhého. Je definován v hlavičkovém souboru string.h.

Funkce má dva argumenty: cílovou vyrovnávací paměť, kam bude uložen zkopírovaný řetězec, a zdrojový řetězec, který bude zkopírován. Funkce zkopíruje celý zdrojový řetězec, včetně ukončovacího znaku null, do cílové vyrovnávací paměti.



java system.out.println

The C strcpy() funkce kopie obsah řetězce na jiný. Obsah cílového řetězce bude nahrazeno se zdrojovým řetězcem pomocí funkce strcpy(). Je definován uvnitř hlavičkový soubor.

Syntax:

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

Parametry: Tato metoda přijímá následující parametry:



    destination : Ukazatel na cílové pole znaků, kam má být obsah zkopírován. source: Ukazatel na zdrojové pole znaků, které se má zkopírovat.

Návratová hodnota: A ukazatel na cíl string je vrácen poté, co funkce strcpy() zkopíruje zdrojový řetězec.

Pří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ýstup

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

PŘÍKLAD 2:

skvělý počítačový jazyk

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

mysql se nerovná
>

>

Výstup

str1: Hello str2: Hello>

Důležité body

  • Pomocí této funkce můžete zkopírovat celý řetězec do cílového řetězce. Zdrojové řetězce nejsou připojeny k cílovým řetězcům. V důsledku toho je obsah cílového řetězce nahrazen obsahem zdrojového řetězce.
  • Zdrojové řetězce nejsou ovlivněny. Po zkopírování zůstane zdrojový řetězec stejný.
  • Chcete-li použít strcpy(), použijte řetězec.h musí být zahrnut hlavičkový soubor.
  • V případě delšího zdrojového řetězce (Character Array) provádí strcpy() nedefinované chování.

VÝHODY A NEVÝHODY:

Některé výhody použití strcpy v C zahrnují:

Je to jednoduchá a snadno použitelná funkce, kterou lze rychle a snadno zkopírovat.
Je to standardní knihovní funkce, takže je široce dostupná a přenosná napříč různými platformami a kompilátory.
Je relativně rychlý, protože ke zkopírování vyžaduje pouze jeden průchod zdrojovým řetězcem.

Při použití strcpy je však třeba zvážit také některé nevýhody:

Nekontroluje velikost cílové vyrovnávací paměti, takže je možné vyrovnávací paměť přepsat a způsobit přetečení vyrovnávací paměti, pokud je zdrojový řetězec delší než cílová vyrovnávací paměť. To může vést k bezpečnostním chybám a dalším problémům.
Nezpracovává správně překrývající se řetězce. Pokud se zdrojový a cílový řetězec překrývají, chování strcpy není definováno.
Nezpracovává správně prázdné znaky ve zdrojovém řetězci. Pokud zdrojový řetězec obsahuje znak null, strcpy zastaví kopírování v tomto bodě, i když jsou ve zdrojovém řetězci další znaky.