strcpy, wcscpy, _mbscpy

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Copie une chaîne. Des versions plus sécurisées de ces fonctions sont disponibles. consultez la page strcpy_s, wcscpy_s, _mbscpy_s.

System_CAPS_ICON_important.jpg Important

_mbscpy ne peut pas être utilisée 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 source se terminant par null.

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

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

System_CAPS_ICON_important.jpg Important

Comme strcpy ne vérifie pas si strDestination contient suffisamment d'espace avant de copier strSource, il s'agit d'une cause potentielle de dépassements de mémoire tampon. Par conséquent, nous vous recommandons d’utiliser strcpy_s à la place.

wcscpy et _mbscpy sont respectivement des versions à caractères larges et à caractères multioctets de strcpy. Les arguments et la valeur de retour de wcscpy sont des chaînes de caractères larges ; ceux de _mbscpy sont des chaînes de caractères multioctets. Ces trois fonctions se comportent sinon de façon identique.

En C++, ces fonctions ont des surcharges de modèle qui appellent les équivalents plus récents et sécurisés de ces fonctions. Pour plus d'informations, consultez Secure Template Overloads.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tcscpystrcpy_mbscpywcscpy
RoutineEn-tête requis
strcpy<string.h>
wcscpy<string.h> ou <wchar.h>
_mbscpy<mbstring.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.

// 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!  

System::String::Copy

Manipulation de chaînes
strcat, wcscat, _mbscat
strcmp, wcscmp, _mbscmp
strncnt, _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

Afficher: