Partilhar via


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

sistema::String::Copy

Consulte também

Referência

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

strcat wcscat, _mbscat

strcmp wcscmp, _mbscmp

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

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l