std::basic_string<CharT,Traits,Allocator>:: copy
|
size_type copy
(
CharT
*
dest, size_type count, size_type pos
=
0
)
const
;
|
(constexpr desde C++20) | |
Copia una subcadena
[
pos
,
pos
+
count
)
a la cadena de caracteres apuntada por
dest
. Si la subcadena solicitada excede el final de la cadena, o si
count
==
npos
, la subcadena copiada es
[
pos
,
size()
)
.
La cadena de caracteres resultante no está terminada en nulo.
Contenidos |
Parámetros
| dest | - | puntero a la cadena de caracteres de destino |
| count | - | longitud de la subcadena |
| pos | - | posición del primer carácter a incluir |
Valor de retorno
Número de caracteres copiados.
Excepciones
std::out_of_range si pos > size ( ) .
Si se lanza una excepción por cualquier razón, esta función no tiene efecto ( strong exception safety guarantee ).
Complejidad
Lineal en count .
Ejemplo
#include <iostream> #include <string> int main() { std::string foo("WINE"); // la inicialización con llaves inicializa todos los caracteres a 0, // proporcionando un terminador nulo char bar[4]{}; // no copiar el último carácter, para garantizar la terminación nula foo.copy(bar, sizeof bar - 1); std::cout << bar << '\n'; // requiere que bar esté terminado en nulo }
Salida:
WIN
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 847 | C++98 | no había garantía de seguridad de excepciones | se añadió garantía de seguridad fuerte de excepciones |
Véase también
|
devuelve una subcadena
(función miembro pública) |
|
|
copia caracteres
(función miembro pública de
std::basic_string_view<CharT,Traits>
)
|
|
|
(C++11)
|
copia un rango de elementos a una nueva ubicación
(plantilla de función) |
|
copia un búfer a otro
(función) |