_strdup, _wcsdup, _mbsdup

 

Date de publication : novembre 2016

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

Duplique les chaînes.

System_CAPS_ICON_important.jpg Important

_mbsdupne peut pas être utilisée 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 *_strdup(  
   const char *strSource   
);  
wchar_t *_wcsdup(  
   const wchar_t *strSource   
);  
unsigned char *_mbsdup(  
   const unsigned char *strSource   
);  

Paramètres

strSource
Chaîne source se terminant par null.

Chacune de ces fonctions retourne un pointeur vers l’emplacement de stockage de la chaîne copiée ou NULL si le stockage ne peut pas être alloué.

La fonction _strdup appelle malloc pour allouer de l’espace de stockage à une copie de strSource et copie ensuite strSource dans l’espace alloué.

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

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tcsdup_strdup_mbsdup_wcsdup

Sachant que _strdup appelle malloc pour allouer de l’espace de stockage à la copie de strSource, il est conseillé de toujours libérer cette mémoire en appelant la routine free sur le pointeur retourné par l’appel à _strdup.

Si _DEBUG et _CRTDBG_MAP_ALLOC sont définis, _strdup et _wcsdup sont remplacés par les appels à _strdup_dbg et _wcsdup_dbg pour prévoir le débogage des allocations de mémoire. Pour plus d’informations, consultez _strdup_dbg, _wcsdup_dbg.

RoutineEn-tête requis
_strdup<string.h>
_wcsdup<string.h> ou <wchar.h>
_mbsdup<mbstring.h>

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

// crt_strdup.c  
  
#include <string.h>  
#include <stdio.h>  
  
int main( void )  
{  
   char buffer[] = "This is the buffer text";  
   char *newstring;  
   printf( "Original: %s\n", buffer );  
   newstring = _strdup( buffer );  
   printf( "Copy:     %s\n", newstring );  
   free( newstring );  
}  

Original: This is the buffer text  
Copy:     This is the buffer text  

System::String::Clone

Manipulation de chaînes
memset, wmemset
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: