public static member function
<string>

std::char_traits::copy

static char_type* copy (char_type* dest, const char_type* src, size_t n);
複製字元序列
src 指向的 n 個字元的序列複製到 dest 指向的陣列。 範圍不得重疊。

所有字元特徵型別應實現該函式,就像使用成員 assign分配單個字元一樣。

引數

dest
指向寫入複製字元的陣列的指標。
src
指向包含要複製的n個字元的陣列的指標。
n
要複製的字元數。

請注意,該函式將認為destsrc序列的長度均為n個字元,而與其是否包含空字元無關。
成員型別char_type字元型別(即,char_traits 中的類模板引數)。
size_t 是一個無符號整數型別。

返回值

返回 dest

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// char_traits::copy
#include <iostream>   // std::cout
#include <string>     // std::char_traits

int main ()
{
  char foo[] = "test string";
  char bar[20];

  unsigned len = std::char_traits<char>::length(foo);
  std::char_traits<char>::copy (bar,foo,len);

  bar[len] = '\0'; // append null-character

  std::cout << "foo contains: " << foo << '\n';
  std::cout << "bar contains: " << bar << '\n';
  return 0;
}

輸出
foo contains: test string
bar contains: test string


複雜度

n中是線性的。

異常安全

除非destsrc指向的陣列長度不足,否則此成員函式在任何標準特化中都不會引發異常(無丟擲保證)。
否則,將導致未定義行為

另見