table of contents
std::basic_string::copy(3) | C++ Standard Libary | std::basic_string::copy(3) |
NAME¶
std::basic_string::copy - std::basic_string::copy
Synopsis¶
size_type copy( CharT* dest, size_type count, size_type pos
(constexpr since C++20)
= 0 ) const;
Copies a substring [pos, pos + count) to character string pointed to by dest.
If the
requested substring lasts past the end of the string, or if count == npos,
the
copied substring is [pos, size()).
The resulting character string is not null-terminated.
Parameters¶
dest - pointer to the destination character string
count - length of the substring
pos - position of the first character to include
Return value¶
Number of characters copied.
Exceptions¶
std::out_of_range if pos > size().
If an exception is thrown for any reason, this function has no effect (strong
exception safety guarantee).
Complexity¶
Linear in count.
Example¶
// Run this code
#include <iostream>
#include <string>
int main()
{
std::string foo("WINE");
// brace-initialization initializes all characters to 0,
// providing a null-terminator
char bar[4]{};
// do not copy the last char, to guarantee null-termination
foo.copy(bar, sizeof bar - 1);
std::cout << bar << '\n'; // requires bar to be null-terminated
}
Output:¶
WIN
Defect reports
The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.
DR Applied to Behavior as published Correct behavior
LWG 847 C++98 there was no exception safety added strong exception safety
guarantee guarantee
See also¶
substr returns a substring
(public member function)
copy copies characters
(public member function of std::basic_string_view<CharT,Traits>)
copy copies a range of elements to a new location
copy_if (function template)
(C++11)
memcpy copies one buffer to another
(function)
2024.06.10 | http://cppreference.com |