strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
Aggiunge caratteri di una stringa. Sono disponibili versioni più sicure di queste funzioni., vedere strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l.
Importante
_mbsncat e _mbsncat_l non possono essere utilizzate nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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
Parametri
strDest
Stringa di destinazione con terminazione null.strSource
Stringa di origine con terminazione null.count
Numero di caratteri da accodare.locale
Impostazioni locali da utilizzare.
Valore restituito
Restituisce un puntatore alla stringa di destinazione. Nessun valore restituito è riservato per indicare un errore.
Note
La funzione strncat aggiunge, al massimo, il primi caratteri count di strSource a strDest. Il carattere iniziale di strSource sovrascrive il carattere di terminazione null di strDest. Se un carattere null viene visualizzato in strSource prima che count caratteri vengano aggiunti, strncat aggiunge tutti i caratteri da strSource fino al carattere null. Se count è maggiore della lunghezza di strSource, la lunghezza strSource viene utilizzata al posto di count. In tutti i casi, la stringa risultate è terminata con un carattere null. Se la copia avviene tra stringhe che si sovrappongono, il comportamento non è definito.
![]() |
---|
strncat non verifica la presenza di spazio sufficiente in strDest; è pertanto una causa possibile dei sovraccarichi del buffer.Tenere presente che count limita il numero di caratteri aggiunti; non è un limite alla dimensione di strDest.Vedere l'esempio riportato di seguito.Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer. |
wcsncat e _mbsncat sono versioni a caratteri di tipo "wide" e di caratteri multibyte di strncat. Gli argomenti della stringa e il valore restituito da wcsncat sono stringhe di caratteri di tipo "wide", quelli di _mbsncat sono stringhe di caratteri multibyte. Altrimenti queste tre funzioni si comportano in modo identico.
Il valore di output è interessato dall'impostazione dell'impostazione di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni. Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato. Per ulteriori informazioni, vedere Impostazioni locali.
In C++, queste funzioni hanno modelli di overload. Per ulteriori informazioni, vedere Overload di modelli sicuri.
Mapping di routine su testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsncat |
strncat |
_mbsnbcat |
wcsncat |
_tcsncat_l |
_strncat_l |
_mbsnbcat_l |
_wcsncat_l |
Nota
_strncat_l e _wcsncat_l non hanno dipendenza delle impostazioni locali e non sono destinate per essere chiamate direttamente.Vengono fornite per un utilizzo interno da _tcsncat_l.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
strncat |
<string.h> |
wcsncat |
<string.h> o <wchar.h> |
_mbsncat |
<mbstring.h> |
_mbsncat_l |
<mbstring.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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) );
}
Output
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)
Si noti che BadAppend provoca un sovraccarico del buffer.
Equivalente .NET Framework
Vedere anche
Riferimenti
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