strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
Aggiungere i caratteri di una stringa.Più versioni sicure di queste funzioni sono disponibili, vedere strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l.
Importante |
---|
_mbsncat e _mbsncat_l non possono essere utilizzati nelle applicazioni eseguite nelle finestre 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 aggiungere.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 di strncat accodamento, al massimo, i primi caratteri di count di strSource a strDest.Il carattere iniziale di strSource sovrascrive il carattere di terminazione null di strDest.Se un carattere null visualizzato in strSource prima che i caratteri di count vengano aggiunti, strncat aggiunge tutti i caratteri da strSource, fino al carattere null.Se count è maggiore della lunghezza di strSource, la lunghezza di strSource viene utilizzata al posto di count.Tutti i casi, viene terminato con un carattere null.Se copiare è compresa tra stringhe che si sovrappongono, il comportamento è definito.
Nota sulla sicurezza |
---|
strncat non controlla se uno spazio sufficiente in strDest; è pertanto una causa potenziale dei sovraccarichi del buffer.Tenere presente che count limita il numero di caratteri aggiunto; non è un limite di 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 di wcsncat sono stringhe di caratteri estesi, tali 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 Assicurarsi che gli overload del modello.
Mapping di routine a Testo generico
TCHAR.H routine |
_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 dispongono di dipendenza delle impostazioni locali e non sono destinati a essere chiamati direttamente.Vengono forniti per 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à nell'introduzione.
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