überprüfte, wcscpy, _mbscpy
Kopiert eine Zeichenfolge.Sicherere Versionen dieser Funktionen sind verfügbar; finden Sie unter strcpy_s, wcscpy_s, _mbscpy_s.
Wichtig |
---|
_mbscpy kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
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
Auf NULL endende Quellzeichenfolge.
Rückgabewert
Jede dieser Funktionen gibt die Zielzeichenfolge zurück.Kein Rückgabewert wird reserviert, um einen Fehler anzugeben.
Hinweise
Die strcpy-Funktion kopiert strSource, einschließlich des abschließenden NULL-Zeichens, dem Speicherort, der von strDestination angegeben wird.Das Verhalten von strcpy ist nicht definiert, wenn die Quell- und Zielzeichenfolgen überschneiden.
Sicherheitshinweis |
---|
Da strcpy für nicht genügend Speicherplatz in strDestination überprüft, bevor strSource kopiert, ist es eine mögliche Ursache von Pufferüberläufen.Daher wird empfohlen, stattdessen strcpy_s verwenden. |
wcscpy und _mbscpy sind, bzw., Breitzeichen und Mehrbytezeichen-Versionen 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++ sind diese Funktionen Vorlagenüberladungen, die aufrufen, das später, speichern Entsprechungen dieser Funktionen.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.
Zuordnung generische 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> |
So zusätzlicher Kompatibilitätsinformation 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