wcscpy, wcscpy_s
cppreference.net에서
| 헤더 <wchar.h>
|
||
wchar_t* wcscpy( wchar_t* dest, const wchar_t* src );
|
에 정의됨 (1) | (C95부터) (C99까지) |
wchar_t* wcscpy( wchar_t* restrict dest, const wchar_t* restrict src );
|
(C99부터) | |
errno_t wcscpy_s( wchar_t* restrict dest, rsize_t destsz,
const wchar_t* restrict src );
|
(2) | (C11부터) |
1)
src이 가리키는 와이드 문자열(종료 널 와이드 문자 포함)을 dest이 가리키는 와이드 문자 배열로 복사합니다. dest 배열이 충분히 크지 않으면 동작이 정의되지 않습니다. 문자열이 겹치면 동작이 정의되지 않습니다.2) (1)과 동일하지만, 대상 배열의 나머지 부분을 지정되지 않은 값으로 덮어쓸 수 있으며, 다음 오류가 런타임에 감지되어 현재 설치된 제약 처리기 함수를 호출한다는 점이 다릅니다:
src또는dest가 널 포인터인 경우destsz가 0이거나RSIZE_MAX / sizeof(wchar_t)destsz보다 큰 경우wcsnlen_s(src, destsz)가- 보다 작거나 같은 경우, 즉 잘림이 발생하는 경우
- 원본과 대상 문자열 사이에 겹침이 발생하는 경우
wcscpy_s모든 경계 검사 함수와 마찬가지로,__STDC_LIB_EXT1__은 구현에 의해 정의되고 사용자가__STDC_WANT_LIB_EXT1__를 정수 상수1로 정의한 후 <wchar.h>를 포함하는 경우에만 사용 가능함이 보장됩니다.
매개변수
| dest | - | 복사할 대상 와이드 문자 배열을 가리키는 포인터 |
| src | - | 복사할 원본 널 종료 와이드 문자열을 가리키는 포인터 |
| destsz | - | 쓸 최대 문자 수, 일반적으로 대상 버퍼의 크기 |
반환값
1)
dest의 복사본을 반환합니다2)
L'\0' 성공 시 0을 반환하고, 오류 시 0이 아닌 값을 반환합니다. 또한 오류 시 dest[0]에 dest을 씁니다 (destsz이 널 포인터이거나 RMAX_SIZE / sizeof(wchar_t)이 0보다 큰 경우는 제외).예제
이 코드 실행하기
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wchar_t* src = L"犬 means dog";
// src[0] = L'狗' ; // this would be undefined behavior
wchar_t dst[wcslen(src) + 1]; // +1 for the null terminator
wcscpy(dst, src);
dst[0] = L'狗'; // OK
setlocale(LC_ALL, "en_US.utf8");
printf("src = %ls\ndst = %ls\n", src, dst);
}
출력:
src = 犬 means dog
dst = 狗 means dog
참조
- C23 표준 (ISO/IEC 9899:2024):
- 7.31.4.2.1 wcscpy 함수 (p: 438)
- K.3.9.3.1.1 wcscpy_s 함수 (p: 663)
- C17 표준 (ISO/IEC 9899:2018):
- 7.29.4.1.2 wcscpy 함수 (p: TBD)
- K.3.9.2.1.1 wcscpy_s 함수 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
- 7.29.4.1.2 wcscpy 함수 (p: 430)
- K.3.9.2.1.1 wcscpy_s 함수 (p: 639)
- C99 표준 (ISO/IEC 9899:1999):
- 7.24.4.1.2 wcscpy 함수 (p: 376)
같이 보기
(C95)(C11) |
한 문자열에서 다른 문자열로 일정량의 와이드 문자를 복사합니다 (함수) |
(C95)(C11) |
두 개의 겹치지 않는 배열 간에 일정량의 와이드 문자를 복사합니다 (함수) |
(C11) |
하나의 문자열을 다른 문자열로 복사합니다 (함수) |
C++ 문서 for wcscpy
| |