strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
Ajoutez les caractères d'une chaîne.Les versions sécurisées de ces fonctions sont disponibles, consultez strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l .
Important
_mbsncat et _mbsncat_l ne peuvent pas être utilisés 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.
char *strncat(
char *strDest,
const char *strSource,
size_t count
);
wchar_t *wcsncat(
wchar_t *strDest,
const wchar_t *strSource,
size_t count
);
unsigned char *_mbsncat(
unsigned char *strDest,
const unsigned char *strSource,
size_t count
);
unsigned char *_mbsncat_l(
unsigned char *strDest,
const unsigned char *strSource,
size_t count,
_locale_t locale
);
template <size_t size>
char *strncat(
char (&strDest)[size],
const char *strSource,
size_t count
); // C++ only
template <size_t size>
wchar_t *wcsncat(
wchar_t (&strDest)[size],
const wchar_t *strSource,
size_t count
); // C++ only
template <size_t size>
unsigned char *_mbsncat(
unsigned char (&strDest)[size],
const unsigned char *strSource,
size_t count
); // C++ only
template <size_t size>
unsigned char *_mbsncat_l(
unsigned char (&strDest)[size],
const unsigned char *strSource,
size_t count,
_locale_t locale
); // C++ only
Paramètres
strDest
Chaîne de destination se terminant par null.strSource
Chaîne se terminant par null source.count
Nombre de caractères à ajouter.locale
Paramètres régionaux à utiliser.
Valeur de retour
Retourne un pointeur vers une chaîne de destination.Aucune valeur de retour n'est réservée pour indiquer une erreur.
Notes
La fonction d' strncat ajoute, au plus, les premiers caractères d' count d' strSource à strDest.Le caractère initial d' strSource remplace le caractère NULL de fin d' strDest.Si un caractère Null apparaît dans strSource avant que des caractères d' count soient ajoutés, strncat ajoute tous les caractères d' strSource, jusqu'au caractère Null.Si count est supérieur à la longueur d' strSource, la longueur d' strSource est utilisée à la place d' count.Les tous les cas, la chaîne résultante est effectué avec un caractère Null.Si copier nécessaire entre les chaînes qui se chevauchent, le comportement est pas défini.
Note de sécurité |
---|
strncat ne vérifie pas suffisamment d'espace dans strDest; il est par conséquent une erreur potentielle des dépassements de mémoire tampon.N'oubliez pas qu' count limite le nombre de caractères ajoutés ; ce n'est pas une limite de la taille d' strDest.Consultez l'exemple ci-dessous.Pour plus d'informations, consultez l' Solutions contre les dépassements de mémoire tampon. |
wcsncat et _mbsncat sont à caractères larges et des versions à caractères multioctets d' strncat.Les arguments de chaîne et la valeur de retour d' wcsncat sont des chaînes à caractères larges ; ces d' _mbsncat sont des chaînes de caractères multioctets.Ces trois fonctions se comportent de sinon.
La valeur de sortie est affectée par la configuration de la définition de catégorie d' LC_CTYPE des paramètres régionaux ; consultez l' setlocale pour plus d'informations.Les versions de ces fonctions sans suffixe d' _l utilisent les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe d' _l sont identiques sauf qu'elles utilisent le paramètre de paramètres régionaux passé à la place.Pour plus d'informations, consultez Paramètres régionaux.
En C++, ces fonctions ont des surcharges de modèle.Pour plus d'informations, consultez Surcharges sécurisées de modèle.
Mappages de routines de texte générique
Routine de TCHAR.H |
_UNICODE et non définis _MBCS |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcsncat |
strncat |
_mbsnbcat |
wcsncat |
_tcsncat_l |
_strncat_l |
_mbsnbcat_l |
_wcsncat_l |
[!REMARQUE]
_strncat_l et _wcsncat_l n'ont pas de dépendances de paramètres régionaux et ne sont pas censés être appelées directement.Ils sont fournis pour un usage interne par _tcsncat_l.
Configuration requise
Routine |
En-tête requis |
---|---|
strncat |
<string.h> |
wcsncat |
<string.h> ou <wchar.h> |
_mbsncat |
<mbstring.h> |
_mbsncat_l |
<mbstring.h> |
Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.
Exemple
// crt_strncat.c
// Use strcat and strncat to append to a string.
#include <stdlib.h>
#define MAXSTRINGLEN 39
char string[MAXSTRINGLEN+1];
// or char *string = malloc(MAXSTRINGLEN+1);
void BadAppend( char suffix[], int n )
{
strncat( string, suffix, n );
}
void GoodAppend( char suffix[], size_t n )
{
strncat( string, suffix, __min( n, MAXSTRINGLEN-strlen(string)) );
}
int main( void )
{
string[0] = '\0';
printf( "string can hold up to %d characters\n", MAXSTRINGLEN );
strcpy( string, "This is the initial string!" );
// concatenate up to 20 characters...
BadAppend( "Extra text to add to the string...", 20 );
printf( "After BadAppend : %s (%d chars)\n", string, strlen(string) );
strcpy( string, "This is the initial string!" );
// concatenate up to 20 characters...
GoodAppend( "Extra text to add to the string...", 20 );
printf( "After GoodAppend: %s (%d chars)\n", string, strlen(string) );
}
Sortie
string can hold up to 39 characters
After BadAppend : This is the initial string!Extra text to add to (47 chars)
After GoodAppend: This is the initial string!Extra text t (39 chars)
Notez qu' BadAppend a provoqué un dépassement de mémoire tampon.
Équivalent .NET Framework
Voir aussi
Référence
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
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l