strcpy, wcscpy, _mbscpy

Kopiert eine Zeichenfolge. Sicherere Versionen dieser Funktionen sind verfügbar. siehe 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.

Bemerkungen

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

Wichtig

Da strcpy vor dem Kopieren strSourcevon strDestination nicht auf genügend Speicherplatz überprüft, ist dies eine mögliche Ursache für Pufferüberläufe. Daher wird empfohlen, stattdessen zu verwenden strcpy_s .

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.

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

Zuordnung generischer Textroutinen

TCHAR.H Routine _UNICODE&_MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcscpy strcpy _mbscpy wcscpy

Anforderungen

-Routine zurückgegebener Wert Erforderlicher Header
strcpy <string.h>
wcscpy <string.h> oder <wchar.h>
_mbscpy <mbstring.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Compatibility.

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_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