Język C++
basic_string::copy
[metoda] Kopiuje string lub jego część do tablicy znaków.Składnia
#include <string>
namespace std
{
template <
class TypZnaku,
class CechowanieZnakow = char_traits < TypZnaku >,
class Alokator = allocator < TypZnaku >
>
class basic_string
{
public:
size_type copy( TypZnaku * _s, size_type _len, size_type _pos = 0 ) const;
};
}
Argumenty
Zwracana wartość
Liczba skopiowanych znaków do tablicy
_s. Może być równa
_len albo liczbie
length() -
_pos w przypadku, gdy długość stringa jest mniejsza od
_pos+
_len.
Opis szczegółowy
Kopiuje
_len znaków (lub mniej w przypadku napotkania końca kontenera) od pozycji
_pos w aktualnym obiekcie do tablicy wskazywanej przez
_s. Ta metoda nie dodaje bajtu zerowego na koniec skopiowanego ciągu znaków.
Rzucane wyjątki
Jeżeli wyjątek zostanie rzucony, wartość obiektu nie ulegnie zmianie.
Jeżeli
_s nie wskazuje na wystarczająco dużą tablicę, to zachowanie jest niezdefiniowane.
Jeżeli
_pos jest większe od długości aktualnego obiektu, to wtedy zostanie rzucony
out_of_range.
Przykład
#include <iostream>
#include <string>
typedef std::basic_string < char, std::char_traits < char >, std::allocator < char >> MojString;
int main()
{
char bufor[ 20 ];
MojString str( "Test string..." );
std::size_t len = str.copy( bufor, 6, 5 );
bufor[ len ] = '\0';
std::cout << "bufor zawiera: " << bufor << '\n';
return 0;
}
Standardowe wyjście programu:
bufor zawiera: string
Zagadnienia powiązane
substr | Zwraca podciąg łańcucha znaków. (metoda) |
---|
assign | Przypisuje nową wartość aktualnemu obiektowi. (metoda) |
---|
c_str | Zwraca wskaźnik na początek wewnętrznej tablicy znaków. (metoda) |
---|
replace | Zamienia część znaków na inne. (metoda) |
---|
insert | Wstawia znaki do aktualnego łańcucha znaków. (metoda) |
---|
append | Modyfikuje przechowywany tekst poprzez dopisanie podanego łańcucha znaków na koniec tekstu. (metoda) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.