다음을 통해 공유


_mbscpy_s, wcscpy_s strcpy_s

문자열을 복사 합니다.이러한 버전의 수 strcpy, wcscpy, _mbscpy 에 설명 된 대로 보안 향상 기능을 CRT의 보안 기능.

중요중요

_mbscpy_s런타임에서 Windows를 실행 하는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 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

매개 변수

  • strDestination
    대상 문자열 버퍼의 위치

  • numberOfElements
    대상 문자열 버퍼의 크기입니다.

  • strSource
    소스를 null로 끝나는 문자열 버퍼입니다.

반환 값

성공 하는 경우에 0입니다. 그렇지 않으면 오류입니다.

오류 조건

strDestination

numberOfElements

strSource

반환 값

내용strDestination

NULL

any

any

EINVAL

수정 되지 않음

any

any

NULL

EINVAL

strDestination[0] 0으로 설정

any

0 또는 너무 작아서

any

ERANGE

strDestination[0] 0으로 설정

설명

strcpy_s 함수는 주소에 내용을 복사 strSource에 지정 된 위치에는 종료 null 문자를 포함 하 여 strDestination.대상 문자열이 너무 작아서 null 종결 문자를 포함 하 여 원본 문자열을 저장할 수 있어야 합니다.동작을 strcpy_s 원본 및 대상 문자열 겹칠 경우 정의 되어 있지 않습니다.

wcscpy_s및 _mbscpy_s 와이드 및 멀티 바이트 문자 버전의 strcpy_s 각각.인수 및 반환 값을 wcscpy_s 와이드 문자 문자열입니다. _mbscpy_s 멀티 바이트 문자 문자열입니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.

경우 strDestination 또는 strSource 는 null 포인터 또는 대상 문자열 너무 작으면에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 됩니다 매개 변수 유효성 검사.이러한 함수는 실행을 계속 하도록 허용 된 경우, 반환 EINVAL 및 설정 errno 에 EINVAL.

성공적으로 실행 되 면 null 종료 항상 대상 문자열이입니다.

C + +에서는 이러한 함수를 사용 하 여 템플릿 오버 로드에 의해 단순화 됩니다. 오버 로드에서 버퍼 길이 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없도록) 및 해당 최신, 안전한 이미지와 이전, 안전 하지 않은 함수가 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드을 참조하십시오.

이러한 함수의 디버그 버전이 먼저 0xFE 사용 하 여 버퍼를 채웁니다.이 동작을 비활성화 하려면 _CrtSetDebugFillThreshold.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tcscpy_s

strcpy_s

_mbscpy_s

wcscpy_s

요구 사항

루틴

필수 헤더

strcpy_s

<string.h>

wcscpy_s

<string.h> 또는 <wchar.h>

_mbscpy_s

<mbstring.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// 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 );
}
  

해당 .NET Framework 항목

System::String::Copy

참고 항목

참조

문자열 조작 (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