logo

strcpy в C

ВСТУП:

strcpy — це функція стандартної бібліотеки C, яка копіює рядок з одного місця в інше. Він визначений у файлі заголовка string.h.

Функція приймає два аргументи: буфер призначення, де буде зберігатися скопійований рядок, і вихідний рядок, який буде скопійовано. Функція копіює весь вихідний рядок, включаючи нульовий термінатор, у буфер призначення.



аплет аплет

The C strcpy() функція копій вміст одного рядка в інший. Вміст цільового рядка буде замінено з вихідним рядком за допомогою функції strcpy(). Визначається всередині файл заголовка.

Синтаксис:

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

Параметри: Цей метод приймає такі параметри:



    призначення : вказівник на масив символів призначення, куди потрібно скопіювати вміст. джерело: покажчик на вихідний масив символів, який потрібно скопіювати.

Повернене значення: А вказівник на пункт призначення рядок повертається після того, як функція strcpy() копіює вихідний рядок.

Приклад: 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;> }>

містить python

>

>

Вихід

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

ПРИКЛАД 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;> }>

заблокувати рекламу на youtube android
>

>

Вихід

str1: Hello str2: Hello>

Важливі моменти

  • За допомогою цієї функції ви можете скопіювати весь рядок у цільовий рядок. Рядки джерела не додаються до рядків призначення. У результаті вміст цільового рядка замінюється вмістом вихідного рядка.
  • Вихідні рядки не впливають. Після копіювання вихідний рядок залишається незмінним.
  • Щоб використовувати strcpy(), рядок.h має бути включений файл заголовка.
  • У разі довшого вихідного рядка (масиву символів) strcpy() виконує невизначену поведінку.

ПЕРЕВАГИ І НЕДОЛІКИ:

Деякі переваги використання strcpy в C включають:

Це проста та легка у використанні функція, яку можна використовувати для швидкого та легкого копіювання рядків.
Це стандартна функція бібліотеки, тому вона широко доступна та переносима на різні платформи та компілятори.
Це відносно швидко, оскільки для його копіювання потрібен лише один прохід через вихідний рядок.

Однак є також деякі недоліки, які слід враховувати при використанні strcpy:

Він не перевіряє розмір буфера призначення, тому можна перезаписати буфер і викликати переповнення буфера, якщо вихідний рядок довший за буфер призначення. Це може призвести до вразливості системи безпеки та інших проблем.
Він не обробляє рядки, що перекриваються, належним чином. Якщо рядки джерела та призначення перекриваються, поведінка strcpy не визначена.
Він не обробляє нульові символи у вихідному рядку належним чином. Якщо вихідний рядок містить нульовий символ, strcpy припинить копіювання в цій точці, навіть якщо у вихідному рядку є додаткові символи.