Łańcuchy typu string

1. Wprowadzenie

  • std::string to 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 do std::string już tak.
  • std::string automatycznie zarządza pamięcią → nie trzeba się martwić o new/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