To jest stara wersja strony!
Autor: Maciej Stefańczyk
Klasa string jest kontenerem przeznaczonym do przechowywania łańcuchów znaków. Stanowi pewnego rodzaju opakowanie dla tablic znaków znanych z C, zawiera także wiele funkcji przydatnych do operowania na napisach. Przy programowaniu obiektowym klasa string zastępuje używanie tabic znaków i biblioteki cstring.
Aby móc używac obiektów typu string należy dołączyć do programu odpowiedni nagłówek:
#include <string>
Podstawowe | |
---|---|
Konstruktor | Tworzy nowy obiekt |
operator= | Operator przypisania |
Iteratory | |
begin | Zwraca iterator na pierwszy znak napisu |
end | Zwraca iterator wskazujący na miejsce za ostatnim znakiem |
rbegin | Zwraca wsteczny iterator wskazujący na ostatni znak napisu |
rend | Zwraca wsteczny iterator wskazujący na miejsce przed pierwszym znakiem |
Rozmiar | |
size | Zwraca ilość znaków w napisie |
length | Zwraca ilość znaków w napisie |
max_size | Zwraca maksymalny dozwolony rozmiar napisu |
resize | Zmienia rozmiar napisu (skraca lub wydłuża) |
capacity | Zwraca wielkość aktualnie zarezerwowanej dla napisu pamięci |
reserve | Wymusza zarezerwowanie ustalonej pamięci dla napisu |
clear | Czyści napis |
empty | Sprawdza, czy napis jest pusty |
Dostęp do znaków | |
operator[] | Zwraca znak na danej pozycji |
at | Zwraca znak na danej pozycji |
Modyfikacja | |
operator+= | Dopisuje znaki na końcu napisu |
append | Dopisuje znaków na końcu napisu |
push_back | Dodaje znak na koniec napisu |
assign | Zastępuje dotychczasowy napis nowym |
insert | Wstawia dodatkowe znaki do napisu |
erase | Usuwa znaki z napisu |
replace | Zmienia część napisu |
copy | Kopiuje fragment napisu |
swap | Zamienia zawartość dwóch stringów między sobą |
Operacje dodatkowe | |
c_str | Zwraca wskaźnik na tablicę znaków zakończoną zerem |
data | Zwraca wskaźnik na wewnętrzną tablicę przechowującą znaki napisu |
get_allocator | |
find | Wyszukuje pierwsze wystąpienie znaku/ciągu w napisie |
rfind | Wyszukuje ostatnie wystąpienie znaku/ciągu w napisie |
find_first_of | Wyszukuje pierwsze wystąpienie jednego z podanych znaków |
find_last_of | Wyszukuje ostatnie wystąpienie jednego z podanych znaków |
find_first_not_of | Wyszukuje pierwsze wystąpienie znaku nie podanego jako argument |
find_last_not_of | Wyszukuje ostatnie wystąpienie znaku nie podanego jako argument |
substr | Zwraca podciąg aktualnego napisu |
compare | Porównuje dwa stringi |
Istnieje kilka metod tworzenia obiektów klasy string.
explicit string ( );
Tworzy pusty napis.
string ( const string& str );
Kopiuje do nowego napisu zawartość już istniejącego.
string ( const string& str, size_t pos, size_t n = npos );
Tworzy nowy napis i kopiuje do niego podciąg napisu podanego jako argument. Kopiowana jest część zaczynająca się na pozycji pos i zawierająca conajwyżej n znaków (jeśli napis jest krótszy niż pos+n, kopiowane są znaki od pozycji pos do końca napisu).
string ( const char * s, size_t n );
Nowy napis jest tworzony poprzez kopiowanie n znaków z tablicy znaków wskazywanej przez s.
string ( const char * s );
Nowy napis jest tworzony poprzez skopiowanie łańcucha znaków zakończonego zerem wskazywanego przez s.
string ( size_t n, char c );
Tworzony jest napis zawierający n wystapień znaku c.
template<class InputIterator> string (InputIterator begin, InputIterator end);
Jeśli InputIterator jest typu całkowitego, jego argumenty są rzutowane na odpowiednie typy i wywoływany jest konstruktor wymieniony wyżej.
string(static_cast<size_t>(begin),static_cast<char>(end));
W przeciwnym wypadku argumenty są traktowane jak iteratory i napis jest tworzony przez skopiowanie do stringa wszystkich elementów poczynając od begin a kończąc na elemencie poprzedzającym end.