Klasa
std::string
w C++ jest częścią Standardowej Biblioteki Szablonów (STL) i zapewnia bogaty zestaw funkcji do łatwej i efektywnej pracy z ciągami znaków. Użycie
std::string
jest zalecane zamiast korzystania z tablic znaków w stylu C ze względu na większe bezpieczeństwo i wygodę. Poniżej przedstawiam podstawowe informacje oraz przykłady użycia klasy
std::string
.
Deklaracja i inicjalizacja
#include <string>
std::string str1; // Pusty ciąg znaków
std::string str2 = "Hello, World!"; // Inicjalizacja przy deklaracji
std::string str3("Inicjalizacja konstruktorem");
std::string str4 = str2; // Kopiowanie innego ciągu znaków
Podstawowe metody
size()
lub length()
– zwraca długość ciągu znaków (liczbę znaków).
empty()
– zwraca true
, jeśli ciąg jest pusty.
append()
lub operator +=
– dodaje ciąg znaków na końcu istniejącego ciągu.
insert()
– wstawia ciąg znaków w określone miejsce.
erase()
– usuwa fragment ciągu znaków.
replace()
– zastępuje fragment ciągu innym ciągiem znaków.
find()
– wyszukuje fragment ciągu i zwraca pozycję jego pierwszego wystąpienia.
substr()
– zwraca podciąg znaków.
compare()
– porównuje ciągi znaków.
Przykłady użycia
#include <iostream>
#include <string>
int main() {
std::string str = "Hello";
str += ", World!"; // Łączenie ciągów
std::cout << str << std::endl; // Wypisuje "Hello, World!"
if (!str.empty()) { // Sprawdzenie, czy ciąg nie jest pusty
std::cout << "Ciąg ma długość: " << str.size() << " znaków." << std::endl;
}
std::string podciag = str.substr(7, 5); // Pobieranie podciągu
std::cout << "Podciąg: " << podciag << std::endl; // Wypisuje "World"
size_t pozycja = str.find("World"); // Szukanie podciągu
if (pozycja != std::string::npos) {
std::cout << "Znaleziono 'World' na pozycji: " << pozycja << std::endl;
}
str.replace(7, 5, "C++"); // Zastępowanie fragmentu ciągu
std::cout << "Po zastąpieniu: " << str << std::endl; // Wypisuje "Hello, C++!"
return 0;
}
Podsumowanie
Klasa
std::string
oferuje wygodne i bezpieczne narzędzia do pracy z tekstem w C++. Dzięki dynamicznemu zarządzaniu pamięcią, funkcje takie jak dodawanie, wycinanie, wstawianie czy wyszukiwanie w ciągach znaków są proste w użyciu i nie wymagają manualnego zarządzania pamięcią, co jest konieczne przy korzystaniu z tablic znaków w stylu C.