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.
Importante |
---|
_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
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