strcpy
strcpy — функция стандартной библиотеки языка программирования Си для копирования нуль-терминированной строки (включая нуль-терминатор) в заданный буфер.
Прототип функцииПравить
Прототип, описанный в заголовочном файле string.h
:
char *strcpy (char *dst, const char *src);
Возвращаемое значениеПравить
Функция возвращает значение dst.
Пример использованияПравить
#include <string.h>
#include <stdio.h> /* для printf() */
int main()
{
char *str = "string example";
char buf[32]; // буфер размером больше строки
buf[0] = '\0'; // помечаем буфер как пустую строку, либо char buf[32] = "";
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"
БезопасностьПравить
Поскольку функция не проверяет длину строки и размер буфера, она не должна использоваться для работы с данными, размер которых неизвестен, во избежание переполнения буфера dst
.
Вместо strcpy
рекомендуется использовать стандартную функцию strncpy
(добавляя нуль-терминатор при необходимости!) или не входящие в стандарт функции strlcpy
или strncpy_s
.
СсылкиПравить
- strcpy(1) (недоступная ссылка) (англ.) — Мануал функции
strcpy
на сайте OpenBSD - C++ reference: cstring: strcpy (англ.) — описание strcpy с примером.
- strcpy() (рус.) — реализация функции strcpy.