Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Mrovqa
Udoskonalił: Piotr DejaVu Szawdyński
Język C++

basic_string::append

[metoda] Modyfikuje przechowywany tekst poprzez dopisanie podanego łańcucha znaków na koniec tekstu.

Składnia

C/C++
#include <string>

namespace std
{
    template <
    class TypZnaku,
    class CechowanieZnakow = char_traits < TypZnaku >,
    class Alokator = allocator < TypZnaku >
    >
    class basic_string
    {
    private:
        typedef basic_string < TypZnaku, CechowanieZnakow, Alokator > UtworzonaKlasaT;
        typedef traits_type::char_type TypWartosci;
    public:
        UtworzonaKlasaT & append( const TypWartosci * _wsk );
       
        UtworzonaKlasaT & append( const TypWartosci * _wsk, size_type _ilosc );
       
        UtworzonaKlasaT & append( UtworzonaKlasaT & _str, size_type _przesuniecie, size_type _ilosc );
       
        UtworzonaKlasaT & append( const UtworzonaKlasaT & _str );
       
        UtworzonaKlasaT & append( size_type _ilosc, value_type _znak );
       
        template < class WejsciowyIterator >
        UtworzonaKlasaT & append( WejsciowyIterator _pierwszy, WejsciowyIterator _ostatni );
       
        UtworzonaKlasaT & append( const_pointer _pierwszy, const_pointer _ostatni );
       
    }; //class basic_string
} //namespace std

Argumenty

ArgumentOpis
_wskŁańcuch znaków, który ma zostać dopisany na koniec.
_strString, który ma zostać dopisany na koniec.
_przesuniecieOznacza, iż do aktualnego napisu zostanie dopisana na koniec część stringu _str od _przesuniecie-tego znaku.
_iloscMaksymalna liczba znaków, jaka może zostać dodana ze stringu _str.
_znakPojedynczy znak, który ma zostać dopisany na koniec stringu.
_pierwszyWejściowy iterator adresujący pierwszy element w przedziale, który ma zostać dodany na koniec.
_ostatniWejściowy iterator adresujący pierwszy element za ostatnim z przedziału, który ma zostać dodany na koniec.

Zwracana wartość

Zwraca referencję do obiektu na którym wykonywano operację (czyli:
return * this;
).

Opis szczegółowy

Metoda modyfikuje przechowywany tekst poprzez dopisanie podanego łańcucha znaków na koniec tekstu.

Jeżeli wyjątek zostanie rzucony to stan obiektu nie ulegnie zmianie.

Dodatkowe informacje

  • Jeżeli _wsk nie wskazuje na łańcuch znaków zakończony znakiem terminalnym oraz nie zostanie określona długość kopiowanego łańcucha znaków to zachowanie metody jest niezdefiniowane.
  • Jeżeli długość kopiowanego łańcucha znaków jest określona oraz tablica wskazywana przez _wsk będzie mniejsza niż podana długość to zachowanie metody będzie niezdefiniowane.
  • Jeżeli przedział [_pierwszy, _ostatni) nie jest poprawny to zachowanie metody jest niezdefiniowane.

Rzucane wyjątki

Jeżeli _przesuniecie jest większe od długości _str, to wtedy zostanie rzucony wyjątek » standard C++out_of_range.
Jeżeli wynik » standard C++ » basic_stringlength przekroczy » standard C++ » basic_stringmax_size, to zostanie rzucony wyjątek » standard C++length_error.
Jeżeli szablon korzysta z domyślnego alokatora oraz alokacja pamięci się nie powiedzie, to metoda rzuci wyjątkiem » standard C++bad_alloc.

Przykład

C/C++
#include <string>
#include <iostream>

typedef std::basic_string < char, std::char_traits < char >, std::allocator < char >> MojString;

int main()
{
    MojString str;
    char * wsk = "To jest ";
    str.append( wsk );
    char * wsk2 = "napis, a to nie zostanie dodane";
    str.append( wsk2, 5 );
    MojString inny( "Tomek, ktory jest hydraulikiem..." );
    str.append( inny, 5, 8 );
    MojString inny2( "zostanie " );
    str.append( inny2 );
    MojString inny3( "XX wypisany dlugopis YY" );
    str.append( inny3.begin() + 3, inny3.end() - 11 );
    str.append( "na ekran" );
    str.append( 3, '!' );
    std::cout << str;
    return 0;
}
Standardowe wyjście programu:
To jest napis, ktory zostanie wypisany na ekran!!!

Zagadnienia powiązane

operator+=Dopisuje łańcuch znaków na koniec kontenera. (operator - metoda)
assignPrzypisuje nową wartość aktualnemu obiektowi. (metoda)
insertWstawia znaki do aktualnego łańcucha znaków. (metoda)
replaceZamienia część znaków na inne. (metoda)

Linki zewnętrzne