strcpy
, wcscpy
, _mbscpy
Kopiert eine Zeichenfolge. Sicherere Versionen dieser Funktionen sind verfügbar; siehe , , _mbscpy_s
wcscpy_s
.strcpy_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 strDestination
strSource
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 "Sichere Vorlagenüberladungen".
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
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
Zeichenfolgenmanipulation
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für