Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kopiuje ciąg. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz , , _mbscpy_swcscpy_s.strcpy_s
Ważne
_mbscpynie 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.
wcscpyi _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