public static member function
<string>
static char_type* copy (char_type* dest, const char_type* src, size_t n);
复制字符序列
将 src 指向的 n 个字符的序列复制到 dest 指向的数组。 范围不得重叠。
所有字符特征类型应实现该函数,就像使用成员 assign分配单个字符一样。
参数
- dest
- 指向写入复制字符的数组的指针。
- src
- 指向包含要复制的n个字符的数组的指针。
- n
- 要复制的字符数。
请注意,该函数将认为dest和src序列的长度均为n个字符,而与其是否包含空字符无关。
成员类型char_type是字符类型(即,char_traits 中的类模板参数)。
size_t 是一个无符号整数类型。
示例
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
|
异常安全
除非dest或src指向的数组长度不足,否则此成员函数在任何标准特化中都不会引发异常(无抛出保证)。
否则,将导致未定义行为。