Condividi tramite


strcat_s, wcscat_s, _mbscat_s

Aggiungere una stringa.Queste sono versioni di strcat, wcscat, _mbscat con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

Nota importanteImportante

_mbscat_s non può essere utilizzato nelle applicazioni eseguite nelle finestre runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

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 
);
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

Parametri

  • strDestination
    Buffer della stringa destinazione che terminata con Null.

  • numberOfElements
    Dimensione del buffer della stringa di destinazione.

  • strSource
    Buffer della stringa sorgente che termina con Null.

Valore restituito

Zero se ha esito positivo; un codice di errore in caso di errore.

Condizioni di errore

strDestination

numberOfElements

strSource

Valore restituito

Contenuti di strDestination.

NULL o non terminato

any

any

EINVAL

non modificato

any

any

NULL

EINVAL

Impostare strDestination[0] a 0

any

0, o troppo piccolo.

any

ERANGE

Impostare strDestination[0] a 0

Note

La funzione strcat_s aggiunge strSource a strDestination e termina la stringa risultato con un carattere null.Il carattere iniziale di strSource sovrascrive il carattere di terminazione null di strDestination.Il comportamento di strcat_s non è definito se le stringhe di origine e di destinazione si sovrappongono.

Si noti che il secondo parametro è la dimensione totale del buffer, non la dimensione rimanente:

char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End");               // Correct
strcat_s(buf, 16 – strlen(buf), " End"); // Incorrect

wcscat_s e _mbscat_s sono versioni a caratteri di tipo "wide" e di caratteri multibyte di strcat_s.Gli argomenti e il valore restituito di wcscat_s sono stringhe di caratteri di tipo "wide", quelli di _mbscat_s sono stringhe di caratteri multibyte.Altrimenti queste tre funzioni si comportano in modo identico.

Se strDestination è un puntatore null, o non è con terminazione null, o se strSource è un puntatore NULL, o se la stringa di destinazione è troppo piccola, il gestore di parametri non validi viene invocato, come descritto in Convalida dei parametri.Se all'esecuzione è permesso continuare, queste funzioni restituiscono EINVAL e impostano errno a EINVAL.

In C++, l'utilizzo di queste funzioni è semplificato dagli overload dei modelli; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti, quelle non sicure alle più recenti e le controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

La versione di debug di queste funzioni per prima cosa riempiono il buffer con il valore 0xFD.Per disabilitare questo comportamento, utilizzare _CrtSetDebugFillThreshold.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcscat_s

strcat_s

_mbscat_s

wcscat_s

Requisiti

Routine

Intestazione obbligatoria

strcat_s

<string.h>

wcscat_s

<string.h> o <wchar.h>

_mbscat_s

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

Vedere l'esempio di codice in strcpy_s, wcscpy_s, _mbscpy_s.

Equivalente .NET Framework

System::String::Concat

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l

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

strspn, wcsspn, _mbsspn, _mbsspn_l