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 in Anwendungen nicht verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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.
![]() |
---|
Da strcpy vor dem Kopieren von strSourcestrDestination nicht auf genügend Speicherplatz überprüft, kann es so zu Pufferüberläufen kommen.Deshalb wird empfohlen, stattdessen strcpy_s zu verwenden. |
wcscpy und _mbscpy sind Breitzeichen- bzw. Multibytezeichenversionen von strcpy. Die Argumente und der Rückgabewert von wcscpy sind Breitzeichen-Zeichenfolgen; die von _mbscpy sind Mehrbyte-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 Sichere Vorlagenüberladungen.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _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> |
Zusätzliche 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 );
}
.NET Framework-Entsprechung
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)
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