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.