Ú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.