Łańcuchy typu string
1. Wprowadzenie
std::stringto klasa z biblioteki standardowej C++ (nagłówek<string>).- Służy do reprezentacji i manipulacji łańcuchami znaków.
- Jest wygodniejszy i bezpieczniejszy niż C-napisy (
char[]), bo automatycznie zarządza pamięcią.
2. Deklaracja i inicjalizacja
3. Podstawowe operacje
3.1. Łączenie (konkatenacja)
3.2. Dodawanie znaku
3.3. Dostęp do znaku
4. Właściwości i metody
4.1. Długość
4.2. Sprawdzanie pustego napisu
4.3. Czyszczenie
5. Wczytywanie i wypisywanie
5.1. Wczytywanie bez spacji
5.2. Wczytywanie całej linii
6. Porównywanie łańcuchów
7. Operacje na podłańcuchach
7.1. Wyciąganie fragmentu
7.2. Szukanie
7.3. Zamiana
7.4. Usuwanie
8. Iteracja po stringu
Klasyczny for
Pętla foreach
9. Konwersje
9.1. String → liczba
9.2. Liczba → string
10. Typowe błędy i dobre praktyki
- Nie używaj
==do porównywania C-napisów (char[]), ale dostd::stringjuż tak. std::stringautomatycznie zarządza pamięcią → nie trzeba się martwić onew/delete.- Do dużych operacji na tekście warto używać referencji (
&) w funkcjach, aby uniknąć kopiowania.
11. string vs. C-napisy
| Cecha | std::string |
C-napis (char[]) |
|---|---|---|
| Bezpieczeństwo | automatyczne zarządzanie pamięcią | łatwo o błędy (przekroczenie tablicy, brak '\0') |
| Funkcje | wbudowane metody (size(), find(), substr()) |
potrzeba <cstring> |
| Łatwość użycia | intuicyjny, przypisania i + działają naturalnie |
wymaga ręcznego kopiowania i łączenia |
| Elastyczność | dynamicznie zmienia rozmiar | rozmiar stały lub wymaga alokacji dynamicznej |
| Porównywanie | ==, <, > działają od razu |
trzeba używać strcmp |