Freigeben über


strcpy_s, wcscpy_s, _mbscpy_s

Kopieren Sie eine Zeichenfolge.Diese sind Versionen von überprüfte, wcscpy, _mbscpy mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.

Wichtiger HinweisWichtig

_mbscpy_s kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW.

errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource ); errno_t wcscpy_s( wchar_t *strDestination, size_t numberOfElements, const wchar_t *strSource ); errno_t _mbscpy_s( unsigned char *strDestination, size_t numberOfElements, const unsigned char *strSource ); template <size_t size> errno_t strcpy_s( char (&strDestination)[size], const char *strSource ); // C++ only template <size_t size> errno_t wcscpy_s( wchar_t (&strDestination)[size], const wchar_t *strSource ); // C++ only template <size_t size> errno_t _mbscpy_s( unsigned char (&strDestination)[size], const unsigned char *strSource ); // C++ only

Parameter

  • strDestination
    Speicherort des Zielzeichenfolgenpuffers

  • numberOfElements
    Größe des Zielzeichenfolgenpuffers.

  • strSource
    Auf NULL endende Quellzeichenfolgenpuffer.

Rückgabewert

Null erfolgreich, wenn ein Fehler andernfalls.

Fehlerbedingungen

strDestination

numberOfElements

strSource

Rückgabewert

Inhalt von strDestination

NULL

any

any

EINVAL

nicht geändert

any

any

NULL

EINVAL

strDestination[0] auf 0 festgelegt

any

0 oder zu kleines

any

ERANGE

strDestination[0] auf 0 festgelegt

Hinweise

Die strcpy_s-Funktion kopiert den Inhalt der Adresse von strSource, einschließlich des abschließenden NULL-Zeichens, dem Speicherort, der von strDestination angegeben wird.Die Zielzeichenfolge muss groß genug sein, die Quellzeichenfolge, einschließlich NULL enthält.Das Verhalten von strcpy_s ist nicht definiert, wenn die Quell- und Zielzeichenfolgen überschneiden.

wcscpy_s und _mbscpy_s sind Breitzeich und Mehrbytezeichen-Versionen von strcpy_s bzw.Die Argumente und der Rückgabewert von wcscpy_s sind Breitzeichen-Zeichenfolgen; die von _mbscpy_s sind - Zeichenfolgen.Diese drei Funktionen verhalten sich andernfalls identisch.

Wenn strDestination oder strSource ein NULL-Zeiger ist oder wenn die Zielzeichenfolge zu klein ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen EINVAL zurück und legen errno auf EINVAL fest.

Nach erfolgreicher Ausführung ist die Zielzeichenfolge immer NULL beendet.

In C++ mithilfe dieser Funktionen wird durch Vorlagenüberladungen vereinfacht; die Überladungen können die Pufferlänge (die Anforderung automatisch beseitigend ableiten, ein Größenargument anzugeben) und können die älteren, nicht-sicheren Funktionen durch ihre späteren, sicheren Entsprechungen automatisch ersetzen.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.

Die Debugversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE aus.Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.

Zuordnung generische Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert.

_MBCS definiert

_UNICODE definiert

_tcscpy_s

strcpy_s

_mbscpy_s

wcscpy_s

Anforderungen

Routine

Erforderlicher Header

strcpy_s

<string.h>

wcscpy_s

<string.h> oder <wchar.h>

_mbscpy_s

<mbstring.h>

So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

Beispiel

// crt_strcpy_s.cpp
// This program uses strcpy_s and strcat_s
// to build a phrase.
//

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

int main( void )
{
   char string[80];
   // using template versions of strcpy_s and strcat_s:
   strcpy_s( string, "Hello world from " );
   strcat_s( string, "strcpy_s " );
   strcat_s( string, "and " );
   // of course we can supply the size explicitly if we want to:
   strcat_s( string, _countof(string), "strcat_s!" );
   
   printf( "String = %s\n", string );
}
  

.NET Framework-Entsprechung

System::String::Copy

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l