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