- strcpy
-
strcpy — функция стандартной библиотеки языка программирования Си, для копирования нуль-терминированной строки (включая нуль-терминатор) в заданный буфер .
Содержание
Прототип функции
Прототип, описанный в заголовочном файле
string.h
:char *strcpy (char *dst, const char *src);
Возвращаемое значение
Функция возвращает значение dst.
Пример использования
#include <string.h> #include <stdio.h> /* для printf() */ int main() { char *str = "образец строки"; char buf[32]; // буфер размером больше строки memset(buf, 0, sizeof(buf)); // очистка буфера для вывода printf("строка: \"%s\"\n\n", str); printf("буфер перед копированием: \"%s\"\n", buf); strcpy(buf, str); printf("буфер после копирования: \"%s\"\n", buf); return 0; }
Вывод:
строка: "образец строки" буфер перед копированием: "" буфер после копирования: "образец строки"
Безопасность
Поскольку функция не проверяет длину строки и размер буфера, она не должна использоваться для работы с внешними данными во избежание переполнения буфера
dst
.Вместо
strcpy
рекомендуется использовать стандартную функциюstrncpy
(внимание, функция с небезопасным дизайном!) или нестандарную функциюstrlcpy
(безопасную реализациюstrncpy
).Ссылки
- strcpy(1) (англ.) — Мануал функции
strcpy
на сайте OpenBSD - C++ reference: cstring: strcpy (англ.) — описание strcpy с примером.
- strcpy() (рус.) — реализация функции strcpy.
Категории:- String.h
- Небезопасные функции Си
- strcpy(1) (англ.) — Мануал функции
Wikimedia Foundation. 2010.