Меню
Главная
Случайная статья
Настройки
|
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 .
Ссылки
|
|