Język C++
basic_string::assign
[metoda] Przypisuje nową wartość aktualnemu obiektowi.Składnia
#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 & assign( const TypWartosci * _wsk );
UtworzonaKlasaT & assign( const TypWartosci * _wsk, size_type _ilosc );
UtworzonaKlasaT & assign( UtworzonaKlasaT & _str, size_type _przesuniecie, size_type _ilosc );
UtworzonaKlasaT & assign( const UtworzonaKlasaT & _str );
UtworzonaKlasaT & assign( size_type _ilosc, value_type _znak );
template < class WejsciowyIterator >
UtworzonaKlasaT & assign( WejsciowyIterator _pierwszy, WejsciowyIterator _ostatni );
UtworzonaKlasaT & assign( const_pointer _pierwszy, const_pointer _ostatni );
};
}
Argumenty
Zwracana wartość
Metoda zwraca referencję do obiektu, na którym została wywołana.
* this
Opis szczegółowy
Metoda przypisuje nową wartość aktualnemu obiektowi.
Rzucane wyjątki
Jeżeli
_wsk nie wskazuje na odpowiednio wielką tablicę albo przedział [
_pierwszy,
_ostatni) nie jest poprawny, zachowanie nie jest zdefiniowane.
Jeżeli
_przesuniecie jest większe od długości
_str, to wtedy zostanie rzucony
out_of_range.
Jeżeli wynik
length przekroczy
max_size, to zostanie rzucony
length_error.
Jeżeli szablon korzysta z domyślnego alokatora, to
bad_alloc zostanie rzucony, gdy funkcja będzie chcieć zaalokować pamięć i operacja się nie powiedzie.
Przykład
#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.assign( wsk );
std::cout << str;
char * wsk2 = "napis, a to nie zostanie dodane";
str.assign( wsk2, 5 );
std::cout << str;
MojString inny( "Tomek, ktory jest hydraulikiem..." );
str.assign( inny, 5, 8 );
std::cout << str;
MojString inny2( "zostanie " );
str.assign( inny2 );
std::cout << str;
MojString inny3( "XX wypisany dlugopis YY" );
str.assign( inny3.begin() + 3, inny3.end() - 11 );
std::cout << str;
str.assign( "na ekran" );
std::cout << str;
str.assign( 3, '!' );
std::cout << str;
}
Standardowe wyjście programu:
To jest napis, ktory zostanie wypisany na ekran!!!
Zagadnienia powiązane
operator= | Przypisuje nową wartość aktualnemu obiektowi. (operator - metoda) |
---|
append | Modyfikuje przechowywany tekst poprzez dopisanie podanego łańcucha znaków na koniec tekstu. (metoda) |
---|
insert | Wstawia znaki do aktualnego łańcucha znaków. (metoda) |
---|
replace | Zamienia część znaków na inne. (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.