strcpy, wcscpy, _mbscpy

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 Rutynowych _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_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