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

< cpp‎ | string‎ | basic string

size_type copy( CharT* dest, size_type count, size_type pos = 0 ) const; |  | (C++20 前)
constexpr size_type copy( CharT* dest, size_type count, size_type pos = 0 ) const; |  | (C++20 起)

复制子串 `[pos, pos+count)` 到 `dest` 所指向的字符串。若请求的子串越过 string 结尾，或若 count == npos ，则复制的子串为 `[pos, size())` 。产生的字符串不是空终止的。

若 pos > size() ，则抛出 std::out_of_range 。

### 参数

dest | - | 指向目标字符串的指针
count | - | 子串长度
pos | - | 包含的首字符位置

### 返回值

复制的字符数

### 异常

若 pos > size() 则为 std::out_of_range 。

### 复杂度

与 `count` 成线性

### 示例

    #include <string>
    #include <iostream>

    int main()
    {
      std::string foo("quuuux");
      char bar[7]{};
      foo.copy(bar, sizeof bar);
      std::cout << bar << '\n';
    }

输出：

    quuuux

### 参阅

substr | 返回子串 (公开成员函数)