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