Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: copy

From cppreference.net
std::basic_string
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() ) 입니다.

결과 문자열은 null 종료되지 않습니다.

목차

매개변수

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 예외 안전성 보장이 없었음 강력한 예외 안전성 보장이 추가됨

참고 항목

부분 문자열을 반환합니다
(public member function)
문자를 복사합니다
( std::basic_string_view<CharT,Traits> 의 public member function)
요소 범위를 새로운 위치로 복사합니다
(function template)
한 버퍼를 다른 버퍼로 복사합니다
(function)