strcpy
, , wcscpy
_mbscpy
Kopiuje ciąg. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz , , _mbscpy_s
wcscpy_s
.strcpy_s
Ważne
_mbscpy
nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
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
Parametry
strDestination
Ciąg docelowy.
strSource
Ciąg źródłowy zakończony wartością null.
Wartość zwracana
Każda z tych funkcji zwraca ciąg docelowy. Żadna wartość zwracana nie jest zarezerwowana, aby wskazać błąd.
Uwagi
Funkcja strcpy
kopiuje strSource
, w tym znak o wartości null zakończenia, do lokalizacji określonej przez strDestination
. Zachowanie elementu strcpy
jest niezdefiniowane, jeśli ciągi źródłowe i docelowe nakładają się na siebie.
Ważne
Ponieważ strcpy
nie sprawdza wystarczającej ilości miejsca przed strDestination
jego skopiowanie strSource
, jest to potencjalna przyczyna przepełnień buforu. W związku z tym zalecamy użycie zamiast strcpy_s
tego.
wcscpy
i _mbscpy
są odpowiednio wersjami znaków wielobajtowych i wielobajtowych .strcpy
Argumenty i wartość zwracana wcscpy
wartości to ciągi wieloznakowe. Argumenty i wartość zwracana wartości to ciągi wielobajtowe _mbscpy
znaków. Te trzy funkcje zachowują się identycznie inaczej.
W języku C++te funkcje mają przeciążenia szablonu, które wywołują nowsze, bezpieczne odpowiedniki tych funkcji. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
TCHAR.H rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcscpy |
strcpy |
_mbscpy |
wcscpy |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
strcpy |
<string.h> |
wcscpy |
<string.h> lub <wchar.h> |
_mbscpy |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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!
Zobacz też
Manipulowanie ciągami
strcat
, , wcscat
_mbscat
strcmp
, , wcscmp
_mbscmp
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
strrchr
, , wcsrchr
, , _mbsrchr
_mbsrchr_l
strspn
, , wcsspn
, , _mbsspn
_mbsspn_l