std::basic_string<CharT,Traits,Allocator>:: copy
| Classes | ||||
|
(C++17)
|
||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
size_type copy
(
CharT
*
dest, size_type count, size_type pos
=
0
)
const
;
|
(自 C++20 起为 constexpr) | |
将子串
[
pos
,
pos
+
count
)
复制到由
dest
指向的字符串中。若请求的子串超出字符串末尾,或当
count
==
npos
时,被复制的子串为
[
pos
,
size()
)
。
生成的字符串不以空字符结尾。
目录 |
参数
| dest | - | 指向目标字符串的指针 |
| count | - | 子字符串长度 |
| pos | - | 起始字符位置 |
返回值
已复制的字符数。
异常
若 pos > size ( ) 则抛出 std::out_of_range 异常。
若因任何原因抛出异常,此函数不产生任何效果( 强异常安全保证 )。
复杂度
在 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)
|
复制元素范围到新位置
(函数模板) |
|
复制缓冲区到另一个缓冲区
(函数) |