strcpy
, , wcscpy
_mbscpy
Копирует строку. Доступны более безопасные версии этих функций; see , , _mbscpy_s
wcscpy_s
.strcpy_s
Внимание
_mbscpy
не может использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
char *strcpy(
char *strDestination,
const char *strSource
);
wchar_t *wcscpy(
wchar_t *strDestination,
const wchar_t *strSource
);
unsigned char *_mbscpy(
unsigned char *strDestination,
const unsigned char *strSource
);
template <size_t size>
char *strcpy(
char (&strDestination)[size],
const char *strSource
); // C++ only
template <size_t size>
wchar_t *wcscpy(
wchar_t (&strDestination)[size],
const wchar_t *strSource
); // C++ only
template <size_t size>
unsigned char *_mbscpy(
unsigned char (&strDestination)[size],
const unsigned char *strSource
); // C++ only
Параметры
strDestination
Конечная строка.
strSource
Исходная строка, завершающаяся символом NULL.
Возвращаемое значение
Каждая из этих функций возвращает строку назначения. Нет зарезервированных возвращаемых значений для указания ошибки.
Замечания
Функция strcpy
копирует strSource
, включая завершающий символ нуля, в указанное расположение, заданное strDestination
. При перекрытии исходного и конечного буферов поведение strcpy
не определено.
Внимание
strcpy
не проверяет, достаточно ли места в строке strDestination
, перед копированием strSource
, в связи с чем может возникнуть ошибка переполнения буфера. Поэтому рекомендуется использовать strcpy_s
вместо этого.
Функции wcscpy
и _mbscpy
являются версиями функции strcpy
для расширенных и многобайтовых символов соответственно. Аргументы и возвращаемые значения wcscpy
являются строками с широкими символами. Аргументы и возвращаемое значение _mbscpy
являются многобайтовыми строками. В остальном эти три функции ведут себя идентично.
В C++ эти функции имеют шаблонные перегрузки, которые вызывают более новые и безопасные аналоги этих функций. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcscpy |
strcpy |
_mbscpy |
wcscpy |
Требования
Маршрут | Обязательный заголовок |
---|---|
strcpy |
<string.h> |
wcscpy |
<string.h> или <wchar.h> |
_mbscpy |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_strcpy.c
// compile with: /W3
// This program uses strcpy
// and strcat to build a phrase.
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[80];
// If you change the previous line to
// char string[20];
// strcpy and strcat will happily overrun the string
// buffer. See the examples for strncpy and strncat
// for safer string handling.
strcpy( string, "Hello world from " ); // C4996
// Note: strcpy is deprecated; use strcpy_s instead
strcat( string, "strcpy " ); // C4996
// Note: strcat is deprecated; use strcat_s instead
strcat( string, "and " ); // C4996
strcat( string, "strcat!" ); // C4996
printf( "String = %s\n", string );
}
String = Hello world from strcpy and strcat!
См. также
Обработка строк
strcat
, , wcscat
_mbscat
strcmp
, , wcscmp
_mbscmp
strncat
, , _strncat_l
_wcsncat_l
wcsncat
_mbsncat
,_mbsncat_l
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
strncpy
, , _strncpy_l
_wcsncpy_l
wcsncpy
_mbsncpy
,_mbsncpy_l
_strnicmp
, , _wcsnicmp
_strnicmp_l
_mbsnicmp
_wcsnicmp_l
,_mbsnicmp_l
strrchr
, , wcsrchr
_mbsrchr
_mbsrchr_l
strspn
, , wcsspn
_mbsspn
_mbsspn_l