Namespaces
Variants

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

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