Partilhar via


strcat_s wcscat_s, _mbscat_s

Acrescente uma seqüência de caracteres.Essas são sistema autônomo versões de strcat wcscat, _mbscat com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.

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

Parâmetros

  • strDestination
    Buffer de cadeia de caracteres terminada com caractere nulo de destino.

  • numberOfElements
    dimensionar do buffer de seqüência de caracteres de destino.

  • strSource
    Buffer de cadeia de caracteres terminada com caractere nulo de fonte.

Valor de retorno

Zero se for bem-sucedida; um código de erro em caso de falha.

Condições de erro

strDestination

numberOfElements

strSource

Valor de Retorno

Sumário de strDestination

NULL ou não finalizada

any

any

EINVAL

não modificado

any

any

NULL

EINVAL

strDestination[0] conjunto para 0

any

0 ou muito pequeno

any

ERANGE

strDestination[0] conjunto para 0

Comentários

The strcat_s função anexa strSource para strDestination e termina a seqüência de caracteres resultante com um caractere nulo. O caractere inicial de strSource substitui o caractere nulo de terminação de strDestination. O comportamento de strcat_s é indefinido se sobreponham as seqüências de caracteres de fonte e destino.

Observe que o segundo parâmetro é o dimensionar total do buffer, não o dimensionar restante:

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_ssão versões de caractere largo e caracteres de multibyte de strcat_s. Os argumentos e o valor retornado do wcscat_s são caractere largos strings; as de _mbscat_s são seqüências de caractere de multibyte. Especifique estas três funções identicamente outro comportam.

If strDestination é um ponteiro nulo ou não é terminada por caractere nulo, ou se strSource é um NULL ponteiro, ou se a seqüência de caracteres de destino é muito pequena, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro . Se a execução for permitida para continuar, essas funções retornam EINVAL e conjunto errno para EINVAL.

No C++, usando essas funções é simplificado pelo modelo sobrecargas; sobrecargas de podem inferir o comprimento do buffer automaticamente (eliminando a necessidade de especificar um argumento de dimensionar) e eles podem substituir automaticamente funções não seguras, mais antigas, com suas contrapartes mais recentes e seguras.For more information, see Proteger overloads de modelo.

As versões de depurar dessas funções primeiro preenchem o buffer com 0xFD.Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Mapeamentos de rotina de texto genérica

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_MBCS definido

_UNICODE definido

_tcscat_s

strcat_s

_mbscat_s

wcscat_s

Requisitos

Rotina

Cabeçalho necessário

strcat_s

<string.h>

wcscat_s

<string.h> ou <wchar.h>

_mbscat_s

<mbstring.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

Consulte o exemplo de código strcpy_s wcscpy_s, _mbscpy_s.

Equivalente do NET Framework

sistema::String::Concat

Consulte também

Referência

Manipulação de seqüência de caracteres (CRT)

strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

funções 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