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 | |
iterator begin(); const_iterator begin() const;  | Zwraca iterator na pierwszy znak napisu | 
iterator end(); const_iterator end() const;  | Zwraca iterator wskazujący na miejsce za ostatnim znakiem | 
reverse_iterator rbegin(); const_reverse_iterator rbegin() const;  | Zwraca wsteczny iterator wskazujący na ostatni znak napisu | 
reverse_iterator rend(); const_reverse_iterator rend() const;  | Zwraca wsteczny iterator wskazujący na miejsce przed pierwszym znakiem | 
| Rozmiar | |
size_t size() const;  | Zwraca ilość znaków w napisie (to samo co length()) | 
size_t length() const;  | Zwraca ilość znaków w napisie (to samo co size()) | 
size_t max_size ( ) const;  | Zwraca maksymalny dozwolony rozmiar napisu | 
void resize ( size_t n, char c ); void resize ( size_t n );  | Zmienia rozmiar napisu (skraca lub wydłuża).  Jeśli podany będzie dodatkowy argument c, po wydłużeniu napisu wolne miejsca zostaną wypełnione podanym znakiem.  | 
	
size_t capacity ( ) const;  | Zwraca wielkość aktualnie zarezerwowanej dla napisu pamięci. capacity >= size. W razie potrzeby dodatkowa pamięć jest alokowana automatycznie. | 
void reserve ( size_t res_arg=0 );  | Wymusza zarezerwowanie ustalonej pamięci dla napisu. Jeśli podany argument jest mniejszy od aktualnej długości napisu, ilość pamięci jest zmniejszana do wielkości gwarantującej przechowanie dotychczasowego napisu. | 
void clear();  | Czyści napis | 
bool empty ( ) const;  | Sprawdza, czy napis jest pusty | 
| Dostęp do znaków | |
const char& operator[] ( size_t pos ) const; char& operator[] ( size_t pos );  | Zwraca znak na pozycji pos. | 
const char& at ( size_t pos ) const; char& at ( size_t pos );  | Zwraca znak na pozycji pos. Działa podobnie do operatora [], z tym że funkcja at() wykonuje sprawdzenie zakresu i w wypadku jego przekroczenia rzuca wyjątek out_of_range. | 
| 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.
string& operator= ( const string& str ); string& operator= ( const char* s ); string& operator= ( char c );
Operator przypisania dla napisów.
W każdym przypadku zwracaną wartością jest *this.