public member function
<string>

std::basic_string::copy

size_type copy (charT* s, size_type len, size_type pos = 0) const;
從字串複製字元序列
basic_string 物件的當前值的子字串複製到 s 指向的陣列中。該子字串包含從位置 pos 開始的 len 個字元。

該函式不會在複製內容的末尾附加空字元。

引數

s
指向字元陣列的指標。
陣列應包含足夠的儲存空間來儲存複製的字元。
len
要複製的字元數(如果字串較短,則儘可能多地複製字元)。
pos
要複製的第一個字元的位置。
如果它大於字串長度,則丟擲out_of_range
注意:basic_string 中的第一個字元用以下值表示0(不是1).

返回值

複製到 s 指向的陣列中的字元數。 這可能等於 lenlength()-pos(如果字串值短於pos+len).

成員型別size_type是一種無符號整型型別。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// string::copy
#include <iostream>
#include <string>

int main ()
{
  char buffer[20];
  std::string str ("Test string...");
  std::size_t length = str.copy(buffer,6,5);
  buffer[length]='\0';
  std::cout << "buffer contains: " << buffer << '\n';
  return 0;
}
輸出
buffer contains: string


複雜度

與複製的字元數成線性關係。

迭代器有效性

沒有變化。

資料競爭

該物件被訪問。

異常安全

強保證: 如果丟擲異常,則 basic_string 中沒有任何更改。

如果 s 沒有指向足夠長的陣列,則會導致未定義行為

如果 pos 大於 字串長度,則會丟擲 out_of_range 異常。

另見