strcpy, wcscpy, _mbscpy
Копирует строки.Существуют более безопасные версии этих функций; см. раздел strcpy_s, wcscpy_s, _mbscpy_s.
Важно |
---|
_mbscpy нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW. |
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
Объединения завершенной строка источника.
Возвращаемое значение
Каждая из этих функций возвращает строку назначения.Возвращаемое значение не зарезервировано для отображения ошибки.
Заметки
Функция strcpy копирует strSource, включая конечное нуль-символ, в расположение, указанное strDestination.При перекрытии исходной и конечной строк поведение инструкции strcpy не определено.
Примечание по безопасности |
---|
Поскольку strcpy не проверяет наличие достаточного места в strDestination, прежде чем он копирует strSource, что причиной переполнение буфера.Поэтому рекомендуется использовать strcpy_s. |
wcscpy и _mbscpy соответственно, версии, юникод и многобайтовой кодировки strcpy.Аргументы и возвращаемое значение wcscpy являются строками из двубайтовых символов; они же в _mbscpy являются строками с многобайтовых символов.В остальных случаях эти три функции ведут себя идентично.
В C++, эти функции имеют перегруженные шаблонные версии, которые вызывают более новые и безопасные аналоги этих функций.Для получения дополнительной информации см. Предоставляйте перегруженный шаблона.
Универсальное текстовое сопоставление функций
Функция 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 );
}
Эквивалент в .NET Framework
См. также
Ссылки
strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l