Condividi tramite


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.

Nota sulla sicurezzaNota sulla sicurezza

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

System::String::Concat

Vedere anche

Riferimenti

Modifica di stringhe (CRT)

_mbsnbcat, _mbsnbcat_l

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strcpy, wcscpy, _mbscpy

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

strspn, wcsspn, _mbsspn, _mbsspn_l

Impostazioni locali

Interpretazione di sequenze di caratteri multibyte