C++ std::string: работа со строками в C++
Стандартная библиотека языка C++ содержит класс std::string, который предназначен для удобной работы со строками переменной длины. std::string является классом, а не примитивным типом данных, поэтому его использование требует создания объектов, которые могут хранить последовательность символов переменной длины.
Пример создания объекта класса std::string:
c++
#include
int main() {
std::string my_string = "Hello, world!";
return 0;
}
В данном примере создается объект my_string класса std::string, который содержит строку "Hello, world!". Передача этой строки конструктору std::string автоматически распределяет память для хранения символов и сохраняет их в объекте.
Основные операции, которые доступны при работе с std::string, включают методы, такие как append(), insert(), erase(), и replace(), которые позволяют добавлять, вставлять, удалять и заменять символы в строке. Кроме того, можно получить длину строки с помощью метода length() или size(), и получить символы по индексу с помощью оператора []:
c++
#include
#include
int main() {
std::string my_string = "Hello, world!";
int length = my_string.length();
char first_char = my_string[0];
my_string.erase(5, 7);
std::cout << "Length: " << length << std::endl;
std::cout << "First character: " << first_char << std::endl;
std::cout << "Modified string: " << my_string << std::endl;
return 0;
}
Данный пример получает длину строки my_string, получает первый символ с помощью оператора [], удаляет 7 символов из исходной строки, начиная с символа с индексом 5, и выводит результаты в стандартный вывод.
Кроме того, для работы со строками доступны операторы сравнения (==, !=, <, >, <=, >=) и методы find(), rfind(), find_first_of(), find_last_of(), и find_first_not_of(), которые позволяют искать подстроки в строке.
c++
#include
#include
int main() {
std::string my_string = "Hello, world!";
std::string another_string = "world";
bool result1 = my_string.find(another_string) != std::string::npos;
bool result2 = my_string.find_first_of("xyz") != std::string::npos;
std::cout << "Contains 'world': " << result1 << std::endl;
std::cout << "Contains any of 'xyz': " << result2 << std::endl;
return 0;
}
Этот код ищет подстроку "world" в строке my_string и проверяет, содержит ли строка my_string какой-либо символ из множества "xyz".
Класс std::string предлагает широкий спектр возможностей для работы со строками в С++, и его использование становится все более популярным в современном программиро