std::basic_string<CharT,Traits,Allocator>::copy
From ko.cppreference.net
size_type copy( CharT* dest, size_type count, size_type pos = 0 ) const;
|
(constexpr since C++20) | |
부분 문자열을 [pos, pos + count) 가리키는 dest 문자 배열로 복사합니다. 요청된 부분 문자열이 문자열 끝을 넘어가거나 count == npos 인 경우, 복사되는 부분 문자열은 [pos, size()) 입니다.
결과 문자 배열은 널 종료되지 않습니다.
매개변수
| dest | - | 대상 문자열을 가리키는 포인터 |
| count | - | 부분 문자열의 길이 |
| pos | - | 포함할 첫 번째 문자의 위치 |
반환값
복사된 문자 수.
예외
std::out_of_range 만약 pos > size ( ) 인 경우.
어떤 이유로든 예외가 발생하면, 이 함수는 아무런 효과를 가지지 않습니다( strong exception safety guarantee ).
복잡도
count 에 대해 선형적입니다.
예제
이 코드 실행
#include <iostream> #include <string> int main() { std::string foo("WINE"); // 중괄호 초기화는 모든 문자를 0으로 초기화하여 // 널 종결자를 제공합니다 char bar[4]{}; // 널 종결을 보장하기 위해 마지막 문자는 복사하지 않습니다 foo.copy(bar, sizeof bar - 1); std::cout << bar << '\n'; // bar가 널 종결되어야 합니다 }
출력:
WIN
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 847 | C++98 | 예외 안전성 보장이 없었음 | 강력한 예외 안전성 보장이 추가됨 |
참고 항목
| 부분 문자열을 반환합니다 (공개 멤버 함수) | |
| 문자를 복사합니다 의 공개 멤버 함수 std::basic_string_view<CharT,Traits>
| |
(C++11) |
요소의 범위를 새 위치에 복사합니다 (함수 템플릿&알고리즘 함수 객체) |
(C++20)(C++20) |
|
| 한 버퍼를 다른 버퍼로 복사합니다 (함수) |