logo

strcpy w C

WSTĘP:

strcpy to standardowa funkcja biblioteki C, która kopiuje ciąg z jednej lokalizacji do drugiej. Jest zdefiniowany w pliku nagłówkowym string.h.

Funkcja przyjmuje dwa argumenty: bufor docelowy, w którym będzie przechowywany skopiowany ciąg znaków, oraz ciąg źródłowy, który zostanie skopiowany. Funkcja kopiuje cały ciąg źródłowy, łącznie z terminatorem zerowym, do bufora docelowego.



obiekt tablicy w Javie

The C strcpy() funkcjonować kopie zawartość ciągu do innego. Treścią ciągu docelowego będzie zastąpiony z ciągiem źródłowym za pomocą funkcji strcpy(). Jest to określone wewnątrz plik nagłówkowy.

Składnia:

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

Parametry: Ta metoda akceptuje następujące parametry:



    miejsce docelowe : Wskaźnik do docelowej tablicy znaków, do której ma zostać skopiowana zawartość. source: Wskaźnik do źródłowej tablicy znaków, która ma zostać skopiowana.

Wartość zwracana: A wskaźnik do miejsca docelowego string jest zwracany po skopiowaniu ciągu źródłowego przez funkcję strcpy().

Przykład 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;> }>

>

>

aktor Ranbir Kapoor wiek
Wyjście

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

PRZYKŁAD 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;> }>

drzewo binarne a drzewo wyszukiwania binarnego
>

>

Wyjście

str1: Hello str2: Hello>

Ważne punkty

  • Za pomocą tej funkcji możesz skopiować cały ciąg do ciągu docelowego. Ciągi źródłowe nie są dołączane do ciągów docelowych. W rezultacie zawartość ciągu docelowego zostaje zastąpiona zawartością ciągu źródłowego.
  • Nie ma to wpływu na ciągi źródłowe. Po skopiowaniu ciąg źródłowy pozostaje taki sam.
  • Aby użyć strcpy(), ciąg.h plik nagłówkowy musi być dołączony.
  • W przypadku dłuższego ciągu źródłowego (tablica znaków) strcpy() wykonuje niezdefiniowane zachowanie.

ZALETY I WADY:

Niektóre zalety używania strcpy w C obejmują:

Jest to prosta i łatwa w użyciu funkcja, za pomocą której można szybko i łatwo kopiować ciągi znaków.
Jest to standardowa funkcja biblioteczna, dlatego jest powszechnie dostępna i przenośna na różnych platformach i kompilatorach.
Jest stosunkowo szybki, ponieważ wymaga tylko jednego przejścia przez ciąg źródłowy, aby go skopiować.

Używając strcpy, należy jednak wziąć pod uwagę pewne wady:

Nie sprawdza rozmiaru bufora docelowego, więc możliwe jest nadpisanie bufora i spowodowanie przepełnienia bufora, jeśli ciąg źródłowy jest dłuższy niż bufor docelowy. Może to prowadzić do luk w zabezpieczeniach i innych problemów.
Nie obsługuje prawidłowo nakładających się ciągów. Jeśli ciągi źródłowy i docelowy nakładają się, zachowanie strcpy jest niezdefiniowane.
Nie obsługuje poprawnie znaków null w ciągu źródłowym. Jeśli ciąg źródłowy zawiera znak null, strcpy przestanie kopiować w tym momencie, nawet jeśli w ciągu źródłowym znajdują się dodatkowe znaki.