Partager via


strcpy, wcscpy, _mbscpy

Copie une chaîne.Les versions sécurisées de ces fonctions sont disponibles ; consultez strcpy_s, wcscpy_s, _mbscpy_s.

Important

_mbscpy ne peut pas être utilisé dans les applications qui s'exécutent dans Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /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

Paramètres

  • strDestination
    Chaîne de destination.

  • strSource
    Chaîne se terminant par null source.

Valeur de retour

Chacune de ces fonctions retourne la chaîne de destination.Aucune valeur de retour n'est réservée pour indiquer une erreur.

Notes

La fonction d' strcpy copie strSource, y compris le caractère NULL de fin, à l'emplacement spécifié par strDestination.Le comportement d' strcpy n'est pas défini si la source et les chaînes de destination se chevauchent.

Note de sécuritéNote de sécurité

Étant donné qu' strcpy ne vérifie pas suffisamment d'espace dans strDestination avant qu'il copie strSource, c'est une erreur potentielle des dépassements de mémoire tampon.Par conséquent, nous vous recommandons d'utiliser strcpy_s à la place.

wcscpy et _mbscpy sont, respectivement, à caractères larges et des versions à caractères multioctets d' strcpy.Les arguments et la valeur de retour d' wcscpy sont des chaînes à caractères larges ; ces d' _mbscpy sont des chaînes de caractères multioctets.Ces trois fonctions se comportent de sinon.

En C++, ces fonctions ont des surcharges de modèle qui appellent le plus récent, fixent des équivalents de ces fonctions.Pour plus d'informations, consultez Surcharges sécurisées de modèle.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcscpy

strcpy

_mbscpy

wcscpy

Configuration requise

Routine

En-tête requis

strcpy

<string.h>

wcscpy

<string.h> ou <wchar.h>

_mbscpy

<mbstring.h>

Pour des informations de compatibilité supplémentaires, consultez Compatibilité.

Exemple

// 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 );
}
  

Équivalent .NET Framework

System::String::Copy

Voir aussi

Référence

Manipulation de chaînes (CRT)

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