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.