Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>::copy

De es.cppreference.net
 
 
 
std::basic_string
 
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 se extiende más allá del final de la cadena, o si count == npos, la subcadena copiada es [pos, size()).

La cadena de caracteres resultante no termina en nulo.

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>)
copia un rango de elementos a una nueva ubicación
(plantilla de función & objeto función de algoritmo)
copia un búfer a otro
(función)