logo

strcpy in C

INVOERING:

strcpy is een standaard C-bibliotheekfunctie die een string van de ene locatie naar de andere kopieert. Het wordt gedefinieerd in het headerbestand string.h.

De functie heeft twee argumenten nodig: een bestemmingsbuffer waar de gekopieerde tekenreeks wordt opgeslagen, en een brontekenreeks die wordt gekopieerd. De functie kopieert de volledige bronreeks, inclusief de null-terminator, naar de doelbuffer.



selecteer sql uit meerdere tabellen

De C strcpy() functie kopieën de inhoud van een string naar een andere. De inhoud van de doelreeks zal zijn vervangen met die van de bronreeks door de strcpy() functie. Het is van binnen gedefinieerd header-bestand.

Syntaxis:

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

Parameters: Deze methode accepteert de volgende parameters:



    bestemming : aanwijzer naar de bestemmingstekenreeks waar de inhoud moet worden gekopieerd. source: Verwijzing naar de brontekenarray die moet worden gekopieerd.

Winstwaarde: A wijzer naar de bestemming string wordt geretourneerd nadat de functie strcpy() de brontekenreeks heeft gekopieerd.

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

>

>

Uitvoer

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

VOORBEELD 2:

C


abstracte klasse Java



#include> #include> int> main()> {> >char> str1[20] =>'Hello'>;> >char> str2[20];> >strcpy>(str2, str1);> >printf>(>'str1: %s '>, str1);> >printf>(>'str2: %s '>, str2);> >return> 0;> }>

schakelkast java
>

>

Uitvoer

str1: Hello str2: Hello>

Belangrijke punten

  • Met deze functie kunt u de gehele string naar de doelstring kopiëren. Bronreeksen worden niet toegevoegd aan doelreeksen. Als gevolg hiervan wordt de inhoud van de doelreeks vervangen door de inhoud van de bronreeks.
  • Brontekenreeksen worden niet beïnvloed. Na het kopiëren blijft de bronreeks hetzelfde.
  • Om strcpy() te gebruiken, moet de string.h header-bestand moet worden opgenomen.
  • In het geval van een langere bronreeks (Character Array) voert strcpy() ongedefinieerd gedrag uit.

VOOR-EN NADELEN:

Enkele voordelen van het gebruik van strcpy in C zijn:

Het is een eenvoudige en gemakkelijk te gebruiken functie waarmee u tekenreeksen snel en gemakkelijk kunt kopiëren.
Het is een standaardbibliotheekfunctie, dus breed beschikbaar en overdraagbaar op verschillende platforms en compilers.
Het is relatief snel, omdat er slechts één keer door de bronreeks hoeft te worden gegaan om het te kopiëren.

Er zijn echter ook enkele nadelen waarmee u rekening moet houden bij het gebruik van strcpy:

Het controleert niet de grootte van de bestemmingsbuffer, dus het is mogelijk om de buffer te overschrijven en een bufferoverloop te veroorzaken als de bronreeks langer is dan de bestemmingsbuffer. Dit kan leiden tot beveiligingsproblemen en andere problemen.
Er wordt niet goed omgegaan met overlappende tekenreeksen. Als de bron- en doelreeksen elkaar overlappen, is het gedrag van strcpy ongedefinieerd.
Het verwerkt null-tekens in de bronreeks niet correct. Als de bronreeks een null-teken bevat, stopt strcpy op dat moment met kopiëren, zelfs als er extra tekens in de bronreeks staan.