반응형
strcpy_s, wcscpy_s, _mbscpy_s, _tcscpy_s
용도
문자열을 복사하는데 사용하고 strcpy함수의 보안이 강화된 버전
구문
#include <string.h>
#include <mbstring.h> // _mbscpy_s 함수용
template <size_t size> // Template functions are C++ only:
errno_t strcpy_s(char (&dest)[size], const char *src);
template <size_t size>
errno_t wcscpy_s(wchar_t (&dest)[size], const wchar_t *src);
template <size_t size>
errno_t _mbscpy_s(unsigned char (&dest)[size], const unsigned char *src);
template <size_t size>
errno_t _mbscpy_s_l(unsigned char (&dest)[size], const unsigned char *src, _locale_t locale);
매개변수
dest
붙여넣을 문자열의 버퍼의 위치
dest_size
붙여넣을 문자열 버퍼의 크기.
narrow / 멀티바이트 함수에서는 char단위이고 와이드 함수에서는 wchar_t 단위.
이 값은 0보다 크고 RSIZE_MAX를 넘지 않아야 함.
src
Null 문자로 종료되는 원본 문자열.
locale
locale
반환
정상이면 0을 반환, 그렇지 않으면 error반환.
추가설명
strcpy_s함수는 원본 문자열 주소에 있는 내용을 널문자 포함하여 복사를 한다. 복사될 위치는 원본데이터와 널문자를 저장할 만큼 충분한 공간이 있어야 한다.
C++에서는 템플릿 오버로드에의해 함수사용이 간결해지기 때문에 size인자를 명시하지 않아도 자동으로 버퍼길이를 유추한다.
그리고 T캐릭터 함수를 사용하면 아래와 같이 호출됩니다.
미정의시: strcpy_s
_UNICODE 정의시: wcscpy_s
_MBCS 정의시: _mbscpy_s
끝!
반응형
'Software > C++&MFC 함수' 카테고리의 다른 글
fscanf_s, fwscanf_s, fscanf_s, _ftscanf_s - 형식이 정해진 문자열 읽기 (0) | 2019.09.19 |
---|---|
strlen / wcslen / _mbslen / _tcsnlen - 문자수 반환 (0) | 2018.12.20 |
isalum / iswalnum / _ismbcalnum / _istalnum - 정수값이 영어,숫자인지 확인 (0) | 2018.11.30 |
isalpha / iswalpha / _ismbcalpha / _istalpha - 정수값이 영문자인지 확인 (0) | 2018.11.30 |
댓글