Partager via


strcat_s, wcscat_s, _mbscat_s

Ajoutez une chaîne.Ce sont des versions de strcat, wcscat, _mbscat avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.

Important

_mbscat_s ne peut pas être utilisé dans les applications qui s'exécutent dans les fenêtres d'exécution.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 se terminant par null de chaîne de destination.

  • numberOfElements
    Taille de la mémoire tampon de chaîne de destination.

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

Valeur de retour

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

Conditions d'erreur

strDestination

numberOfElements

strSource

Valeur de retour

Contenu d' strDestination

NULL ou unterminated

any

any

EINVAL

non modifié

any

any

NULL

EINVAL

strDestination[0] a la valeur 0

any

0, ou trop grand

any

ERANGE

strDestination[0] a la valeur 0

Notes

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

Notez que le deuxième paramètre est la taille totale de la mémoire tampon, pas 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 à caractères larges et des versions à caractères multioctets d' strcat_s.Les arguments et la valeur de retour d' wcscat_s sont des chaînes à caractères larges ; ces d' _mbscat_s sont des chaînes de caractères multioctets.Ces trois fonctions se comportent de sinon.

Si strDestination est un pointeur null, ou n'est pas se terminant par null, ou si strSource est un pointeur d' NULL, ou si la chaîne de destination est trop petite, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions EINVAL de retour et affectez errno à EINVAL.

En C++, l'utilisation de ces fonctions est simplifié par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement (éliminant le besoin de spécifier un argument de taille) et peuvent remplacer automatiquement des fonctions plus anciennes et non sécurisées par leurs nouvelles, sécurisées équivalents.Pour plus d'informations, consultez Surcharges sécurisées de modèle.

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

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcscat_s

strcat_s

_mbscat_s

wcscat_s

Configuration requise

Routine

En-tête requis

strcat_s

<string.h>

wcscat_s

<string.h> ou <wchar.h>

_mbscat_s

<mbstring.h>

Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

Exemple

Consultez l'exemple de code dans strcpy_s, wcscpy_s, _mbscpy_s.

Équivalent .NET Framework

System::String::Concat

Voir aussi

Référence

Manipulation de chaînes (CRT)

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