strcpy — функция стандартной библиотеки языка программирования Си для копирования нуль-терминированной строки (включая нуль-терминатор) в заданный буфер.

Прототип функции

Прототип, описанный в заголовочном файле string.h:

char *strcpy (char *dst, const char *src);

dst — указатель на буфер назначения. src — указатель на исходную строку.

Возвращаемое значение Функция возвращает значение dst.

Пример использования

#include <string.h> #include <stdio.h> /* для printf() */

int main() { char *str = "string example"; char buf; // буфер размером больше строки

buf = '\0'; // помечаем буфер как пустую строку, либо char buf = "";

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.

Категория:String.h Категория:Небезопасные функции Си