strcpy_s wcscpy_s, _mbscpy_s
Copie uma seqüência.Essas são sistema autônomo versões de strcpy wcscpy, _mbscpy com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
errno_t wcscpy_s(
wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource
);
errno_t _mbscpy_s(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource
);
template <size_t size>
errno_t strcpy_s(
char (&strDestination)[size],
const char *strSource
); // C++ only
template <size_t size>
errno_t wcscpy_s(
wchar_t (&strDestination)[size],
const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscpy_s(
unsigned char (&strDestination)[size],
const unsigned char *strSource
); // C++ only
Parâmetros
strDestination
Local de buffer de cadeia de caracteres de destinonumberOfElements
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; caso contrário, um erro.
Condições de erro
strDestination |
numberOfElements |
strSource |
Valor de Retorno |
Sumário de strDestination |
---|---|---|---|---|
NULL |
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 strcpy_s função copia o Sumário no endereço de strSource, incluindo o caractere nulo terminação, para o local especificado por strDestination. A cadeia de caracteres de destino deve ser grande o suficiente para armazenar a seqüência de fonte, incluindo o caractere nulo de terminação.O comportamento de strcpy_s é indefinido se sobreponham as seqüências de caracteres de fonte e destino.
wcscpy_s e _mbscpy_s são caractere largos e caractere de multibyte versões do strcpy_s respectivamente. Os argumentos e o valor retornado do wcscpy_s são caractere largo strings; as de _mbscpy_s são seqüências de caracteres multibyte. Especifique estas três funções identicamente outro comportam.
If strDestination ou strSource é um ponteiro nulo ou se a seqüência de caracteres de destino for muito pequena, o manipulador de parâmetro inválido é chamado 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.
Durante a execução bem-sucedida, a seqüência de caracteres de destino será sempre nulo terminada.
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 |
---|---|---|---|
_tcscpy_s |
strcpy_s |
_mbscpy_s |
wcscpy_s |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
strcpy_s |
<string.h> |
wcscpy_s |
<string.h> ou <wchar.h> |
_mbscpy_s |
<mbstring.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// crt_strcpy_s.cpp
// This program uses strcpy_s and strcat_s
// to build a phrase.
//
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char string[80];
// using template versions of strcpy_s and strcat_s:
strcpy_s( string, "Hello world from " );
strcat_s( string, "strcpy_s " );
strcat_s( string, "and " );
// of course we can supply the size explicitly if we want to:
strcat_s( string, _countof(string), "strcat_s!" );
printf( "String = %s\n", string );
}
String = Hello world from strcpy_s and strcat_s!
Equivalente do NET Framework
Consulte também
Referência
Manipulação de seqüência de caracteres (CRT)
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l