Compartilhar via


strcat_s, wcscat_s, _mbscat_s

Acrescente uma cadeia de caracteres.Essas são versões de strcat, wcscat, _mbscat com aprimoramentos de segurança conforme descrito em Recursos de segurança no CRT.

Observação importanteImportante

_mbscat_s não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /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

Parâmetros

  • strDestination
    Buffer NULL- terminado de cadeia de caracteres de destino.

  • numberOfElements
    Tamanho do buffer de cadeia de caracteres de destino.

  • strSource
    Buffer NULL- terminado de cadeia de caracteres de origem.

Valor de retorno

Zero se com êxito; um código de erro em caso de falha.

Condições de erro

strDestination

numberOfElements

strSource

Valor de Retorno

Conteúdo de strDestination

NULL ou unterminated

alguns

alguns

EINVAL

não modificado

alguns

alguns

NULL

EINVAL

[]strDestination0 definido como 0

alguns

0, ou muito pequeno

alguns

ERANGE

[]strDestination0 definido como 0

Comentários

A função de strcat_s acrescenta strSource a strDestination e termina a cadeia 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 as cadeias de caracteres de origem e de destino sobrepostos.

Observe que o segundo parâmetro é o tamanho total de buffer, não o tamanho 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_s são versões de largo- caractere e o caractere multibyte- de strcat_s.Os argumentos e o valor de retorno de wcscat_s são cadeias de caracteres de largo- caractere; essas de _mbscat_s são cadeias de caracteres de multibyte- caractere.Essas três funções se comportam de forma idêntica.

Se strDestination é um ponteiro zero, ou NULL- não é finalizado, ou se strSource é um ponteiro de NULL , ou se a cadeia de caracteres de destino é muito pequena, o manipulador inválido do parâmetro é chamado, como descrito em Validação de parâmetro.Se a execução é permitida continuar, essas funções EINVAL de retorno e errno defina a EINVAL.

Em C++, usar essas funções é simplificada por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer (automaticamente que elimina a necessidade de especificar um argumento de tamanho) e podem automaticamente substituir mais antigos, não funções de segurança mais recentes, com suas contrapartes seguros.Para obter mais informações, consulte Proteger Overloads de modelo.

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

Mapeamentos da rotina de Genérico- texto

Rotina de TCHAR.H

_UNICODE & _MBCS não definidos

_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 informações extras de compatibilidade Compatibilidade na introdução, consulte.

Exemplo

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

Equivalência do .NET Framework

System::String::Concat

Consulte também

Referência

Manipulação de cadeia de caracteres (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