strcat_s
, , wcscat_s
_mbscat_s
, ,_mbscat_s_l
Ajoute une chaîne. Ces versions de , wcscat
_mbscat
ont des améliorations de strcat
sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT.
Important
_mbscat_s
et _mbscat_s_l
ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.
Syntaxe
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
);
errno_t _mbscat_s_l(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource,
_locale_t locale
);
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
template <size_t size>
errno_t _mbscat_s_l(
unsigned char (&strDestination)[size],
const unsigned char *strSource,
_locale_t locale
); // C++ only
Paramètres
strDestination
Mémoire tampon de la chaîne de destination se terminant par un caractère Null.
numberOfElements
Taille de la mémoire tampon de la chaîne de destination.
strSource
Mémoire tampon de chaîne source se terminant par null.
locale
Paramètres régionaux à utiliser.
Valeur retournée
Zéro si l'opération a réussi ; code d'erreur en cas de échec.
Conditions d’erreur
strDestination |
numberOfElements |
strSource |
Valeur retournée | Contenu de strDestination |
---|---|---|---|---|
NULL ou inachevé |
n'importe laquelle | n'importe laquelle | EINVAL |
non modifié |
n'importe laquelle | n'importe laquelle | NULL |
EINVAL |
strDestination[0] défini sur 0 |
n'importe laquelle | 0 ou trop petit | n'importe laquelle | ERANGE |
strDestination[0] défini sur 0 |
Notes
La fonction strcat_s
ajoute strSource
à strDestination
et termine la chaîne obtenue par un caractère Null. Le caractère initial 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.
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 sont wcscat_s
des chaînes à caractères larges. Les arguments et la valeur de retour sont _mbscat_s
des chaînes de caractères multioctets. Ces trois fonctions se comportent sinon de façon identique.
S’il strDestination
s’agit d’un pointeur Null ou n’est pas terminé par null, ou s’il strSource
s’agit d’un NULL
pointeur ou si la chaîne de destination est trop petite, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EINVAL
et définissent errno
avec la valeur EINVAL
.
Les versions des fonctions qui ont le _l
suffixe ont le même comportement, mais utilisent le paramètre de paramètres régionaux passé au lieu des paramètres régionaux actuels. Pour plus d’informations, consultez Locale.
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 Sécuriser les surcharges de modèle.
Les versions de bibliothèque de débogage de ces fonctions remplissent d’abord la mémoire tampon avec 0xFE. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcscat_s |
strcat_s |
_mbscat_s |
wcscat_s |
Spécifications
Routine | En-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é, consultez Compatibility.
Exemple
Consultez l’exemple de code dans strcpy_s
, wcscpy_s
_mbscpy_s
.
Voir aussi
Manipulation de chaînes
strncat
, , _strncat_l
, _wcsncat_l
wcsncat
, , _mbsncat
_mbsncat_l
strncmp
, , wcsncmp
_mbsncmp
, ,_mbsncmp_l
strncpy
, , _strncpy_l
, _wcsncpy_l
wcsncpy
, , _mbsncpy
_mbsncpy_l
_strnicmp
, , _wcsnicmp
, _strnicmp_l
_mbsnicmp
, , _wcsnicmp_l
_mbsnicmp_l
strrchr
, , wcsrchr
_mbsrchr
, ,_mbsrchr_l
strspn
, , wcsspn
_mbsspn
, ,_mbsspn_l