Metoda assign() wypełnia tablicę ustalonym ciągiem znaków. Może go skopiować z innej zmiennej typu string, tablicy znaków lub wypełnić dowolnym znakiem (patrz przykłady). Odwołujemy się do niej za pomocą operatora ".".
#include <iostream>
#include <string>
using namespace std;
int main()
{
string tu_kopiujemy, tekst = "Ala ma kota";
//skopiowanie całego tekstu
tu_kopiujemy.assign(tekst);
cout<<tu_kopiujemy<<endl; //Ala ma kota
//kopiujemy 4 znaki począwszy od 7 pozycji
tu_kopiujemy.assign(tekst,7,4);
cout<<tu_kopiujemy<<endl; //ma kota
//kopiujemy 6 początkowych znaków
tu_kopiujemy.assign(tekst.c_str(),6);
cout<<tu_kopiujemy<<endl; //Ala ma
//wypełniamy pięcioma znakimi ?
tu_kopiujemy.assign(5,'?');
cout<<tu_kopiujemy<<endl; //?????
//kopiujemy bez pierwszego i ostatniego znaku
tu_kopiujemy.assign(tekst.begin()+1,tekst.end()-1);
cout<<tu_kopiujemy; //la ma kot
return 0;
}
Wyjście:
Ala ma kota kota Ala ma ????? la ma kot