Strcpy
Перейти до навігації
Перейти до пошуку
strcpy — функція стандартної бібліотеки мови програмування Сі для копіювання нуль-термінованого рядка (включаючи нуль-термінатор) у заданий буфер.
Прототип, описаний у заголовному файлі string.h
:
char *strcpy (char * destination, const char * source);
Функція повертає значення destination
.
#include <string.h> /* для strcpy() */
#include <stdio.h> /* для printf() */
int main()
{
char *str = "string example"; // деякий приклад рядка
char buf[32] = ""; // буфер розміром більше ніж рядок str, спочатку містить порожній рядок
printf("string: \"%s\"\n", str);
printf("buffer before copying: \"%s\"\n", buf);
strcpy(buf, str);
printf("buffer after copying: \"%s\"\n", buf);
return 0;
}
Результат роботи коду:
string: "string example" buffer before copying: "" buffer after copying: "string example"
Оскільки функція не перевіряє довжину рядка та розмір буфера, вона не повинна використовуватися для роботи з даними, розмір яких невідомий, щоб уникнути переповнення буфера destination
.
Замість strcpy
рекомендується використовувати стандартну функцію strncpy
( додаючи нуль-термінатор при необхідності! ) або функції strlcpy
або strncpy_s
, що не входять до стандарту
- strcpy(1)(англ.) — Мануал функції
strcpy
на сайті OpenBSD - C++ reference: cstring: strcpy(англ.) — Опис strcpy з прикладом.