strcpy, wcscpy, _mbscpy
Copie une chaîne. Des versions plus 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 le 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.
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 strcpy copie strSource, y compris le caractère null de fin, à l'emplacement spécifié par strDestination. Le comportement de strcpy est non défini si les chaînes source et de destination se superposent.
Note de sécurité |
---|
Comme strcpy ne vérifie pas l'espace suffisant dans strDestination avant de copier strSource, c'est une cause potentielle des dépassements de mémoire tampon.Par conséquent, nous vous recommandons d'utiliser plutôt strcpy_s. |
wcscpy et _mbscpy sont respectivement des versions à caractère élargi et à caractères multioctets de strcpy. Les arguments et la valeur de retour de wcscpy sont des chaînes à 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 Sécuriser les surcharges de modèle.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_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 plus d'informations sur la compatibilité, 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
Voir aussi
Référence
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