Freigeben über


strcpy, wcscpy_mbscpy

Kopiert eine Zeichenfolge. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter strcpy_s, wcscpy_s, _mbscpy_s.

Wichtig

_mbscpy kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

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

Parameter

strDestination
Zielzeichenfolge.

strSource
Mit NULL endende Quellzeichenfolge.

Rückgabewert

Jede dieser Funktionen gibt die Zielzeichenfolge zurück. Kein Rückgabewert ist zur Fehleranzeige reserviert.

Hinweise

Die strcpy-Funktion kopiert strSource einschließlich des abschließenden NULL-Zeichens an den Speicherort, der von strDestination angegeben wird. Wenn sich Quell- und Zielzeichenfolgen überlappen, ist das Verhalten von strcpy undefiniert.

Wichtig

Da strcpy vor dem Kopieren von strDestinationstrSource nicht auf genügend Speicherplatz überprüft, kann es so zu Pufferüberläufen kommen. Daher wird empfohlen, stattdessen zu verwenden strcpy_s .

wcscpy und _mbscpy sind Breitzeichen- bzw. Multibytezeichenversionen von strcpy. Die Argumente und der Rückgabewert wcscpy sind Zeichenfolgen mit breitem Zeichen. Die Argumente und der Rückgabewert sind _mbscpy Multibyte-Zeichenfolgen. Diese drei Funktionen verhalten sich andernfalls identisch.

In C++ haben diese Funktionen Vorlagenüberladungen, mit denen die neueren, sicheren Entsprechungen dieser Funktionen aufgerufen werden. Weitere Informationen finden Sie unter Secure Template Overloads.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tcscpy strcpy _mbscpy wcscpy

Anforderungen

Routine Erforderlicher Header
strcpy <string.h>
wcscpy <string.h> oder <wchar.h>
_mbscpy <mbstring.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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!

Siehe auch

Zeichenfolgenbearbeitung
strcat, wcscat_mbscat
strcmp, wcscmp_mbscmp
strncat, , _strncat_lwcsncat, _wcsncat_l, , _mbsncat_mbsncat_l
strncmp, , wcsncmp_mbsncmp_mbsncmp_l
strncpy, , _strncpy_lwcsncpy, _wcsncpy_l, , _mbsncpy_mbsncpy_l
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l_mbsnicmp_l
strrchr, , wcsrchr_mbsrchr_mbsrchr_l
strspn, , wcsspn_mbsspn_mbsspn_l