strcat_s, wcscat_s, _mbscat_s

 

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

Ajoute une chaîne. Ces versions de strcat, wcscat, _mbscat ont des améliorations de sécurité, comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

System_CAPS_ICON_important.jpg Important

_mbscat_sne 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.

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

Paramètres

strDestination
Mémoire tampon de chaîne terminée par le caractère NULL de destination.

numberOfElements
Taille du tampon de chaîne de destination.

strSource
Mémoire tampon de chaîne source se terminant par null.

Zéro si l'opération a réussi ; code d'erreur en cas de échec.

Conditions d’erreur

strDestinationnumberOfElementsstrSourceValeur de retourContenu de strDestination
NULLou inachevéanyanyEINVALnon modifié
anyanyNULLEINVALstrDestination[0] a la valeur 0
tous0 ou trop petitanyERANGEstrDestination[0] a la valeur 0

Le strcat_s fonction ajoute strSource à strDestination et termine la chaîne obtenue par un caractère null. Le premier caractère de strSource remplace le caractère null de fin de strDestination. Le comportement de strcat_s n'est pas défini si les chaînes source et de destination se chevauchent.

Notez que le deuxième paramètre est la taille totale de la mémoire tampon, et non la taille restante :

char buf[16];  
strcpy_s(buf, 16, "Start");  
strcat_s(buf, 16, " End");               // Correct  
strcat_s(buf, 16 – strlen(buf), " End"); // Incorrect  

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

Si strDestination est un pointeur null ou n’est pas nul, ou si strSource est un NULL pointeur, ou si la chaîne de destination est trop petite, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EINVAL et définissent errno avec la valeur EINVAL.

En C++, l’utilisation de ces fonctions est simplifiée par les surcharges de modèle ; les surcharges peuvent déduire la longueur de la mémoire tampon automatiquement (ce qui évite d’avoir à spécifier un argument taille) et peuvent remplacer automatiquement les fonctions plus anciennes et non sécurisées par leurs équivalentes plus récentes et sécurisées. Pour plus d'informations, consultez Secure Template Overloads.

Les versions debug de ces fonctions remplissent d'abord la mémoire tampon avec 0xFD. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tcscat_sstrcat_s_mbscat_swcscat_s
RoutineEn-tête requis
strcat_s<string.h>
wcscat_s<string.h> ou <wchar.h>
_mbscat_s<mbstring.h>

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

Consultez l’exemple de code strcpy_s, wcscpy_s, _mbscpy_s.

System::String::concat

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