string — класс с методами и переменными для организации работы со строками в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от имени строчного типа данных (англ. string; с англ. — «строка»). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки строкового типа данных, вместо этого используется массив символов. string управляет строками, как и string.h в Си. string использует единственный объект string для организации работы со строками. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.
Пример
Простейшая программа «Hello, world!» (с использованием библиотеки iostream) может быть записана так:
#include <iostream> #include <string> using namespace std; // в Си: #include <string.h> int main() { string str = "Hello, world!"; cout << str << endl; // в Си: puts(str); return 0; }Используемые типы
Методы
Конструктор
Публичная функция
string();
Создает пустую строку.string(const string& str);
Копирующий конструктор.string(const string& str, size_t pos, size_t len = npos);
Копирующий конструктор со смещением и определенной длиной считываемой строки.string(const char* s);
Конструктор, принимающий указатель на строку символов.string(const char* s, size_t n);
Конструктор, принимающий указатель на строку символов с ограничением по длине считываемой строки.string(size_t n, char c);
Конструктор, заполняющий одним символом n ячеек.template <class InputIterator> string(InputIterator first, InputIterator last);
Конструктор, копирующий последовательность символов в диапазоне.string(initializer_list<char> il);
Конструктор, копирующий инициализирующий список.string(string&& str) noexcept;
Конструктор, получающий содержимое строки.Деструктор
String destructor (public member function)
Оператор присваивания
string& operator= (const string& str);
Оператор реализующий присваивание переменной типа string.string& operator= (const char* s);
Оператор реализующий присваивание указателя на строку.string& operator= (char c);
Оператор реализующий присваивание переменной типа char.string& operator= (initializer_list<char> il);
Оператор реализующий присваивание к списку инициализации из типов char.string& operator= (string&& str) noexcept;
Оператор реализующий перемещение[неопределённость] содержания переменной внутрь левого значения.Итераторы
begin()
Возвращает итератор с первым элементом.end()
Возвращает итератор с последним элементом.rbegin()
Возвращает итератор с последним элементом, но идущим в реверсивном порядке (от конца к началу).rend()
Возвращает итератор с первым элементом, но идущим в реверсивном порядке (от конца к началу).cbegin()
Возвращает константный итератор с первым элементом.cend()
Возвращает константный итератор с последним элементом.crbegin()
Возвращает константный итератор с последним элементом, но идущим в реверсивном порядке (от конца к началу).crend()
Возвращает константный итератор с первым элементом, но идущим в реверсивном порядке (от конца к началу).Методы
size_t size() const noexcept
Возвращает текущее количество символов в строке.size_t length() const noexcept
Возвращает текущее количество символов в строке.size_t max_size() const noexcept
Возвращает максимально возможную длину строки.void resize(size_t n);
Изменяет размер длины строки.void resize(size_t n, char c);
Изменяет размер длины строки и заполняет строку указанным символом.size_t capacity() const noexcept
Возвращает длину строки выделенной памяти.void reserve(size_t n = 0)
Резервирует память для n символов.void clear() noexcept
Очищает строку.bool empty() const noexcept
Возвращает булев флаг о том, пуста ли строка.shrink_to_fit()
Элементы доступа
char& operator[] (size_t pos)
Возвращает символ находящийся по индексу в строке начиная с 0 до size() - 1.const char& operator[] (size_t pos) const
Возвращает константный символ находящийся по индексу в строке начиная с 0 до size() - 1.char& at (size_t pos)
Возвращает ссылку на символ, указанный в pos.const char& at (size_t pos) const
Возвращает константную ссылку на символ, указанный в pos.char& back()
Возвращает ссылку на последний символ строки.const char& back() const
Возвращает константную ссылку на последний символ строки.char& front()
Возвращает ссылку на первый символ строки.const char& front() const
Возвращает константную ссылку на первый символ строки.Модификаторы
string& operator+= (const string& str);
Конкатенация со строкой.string& operator+= (const char* s);
Конкатенация со строкой.string& operator+= (char c);
Конкатенация со строкой.string& operator+= (initializer_list<char> il);
Конкатенация со строкой.string& append (const string& str);
Конкатенация со строкой.string& append (const string& str, size_t subpos, size_t sublen);
Конкатенация со строкой.string& append (const char* s);
Конкатенация со строкой.string& append (const char* s, size_t n);
Конкатенация со строкой.string& append (size_t n, char c);
Конкатенация со строкой.template <class InputIterator> string& append (InputIterator first, InputIterator last);
Конкатенация со строкой.string& append (initializer_list<char> il);
Конкатенация со строкой.void push_back (char c);
Добавить символ в конец строки.string& assign (const string& str);
Задать новое значение для строки.string& assign (const string& str, size_t subpos, size_t sublen);
Задать новое значение для строки.string& assign (const char* s);
Задать новое значение для строки.string& assign (const char* s, size_t n);
Задать новое значение для строки.string& assign (size_t n, char c);
Задать новое значение для строки.template <class InputIterator> string& assign (InputIterator first, InputIterator last);
Задать новое значение для строки.string& assign (initializer_list<char> il);
Задать новое значение для строки.string& assign (string&& str) noexcept;
Задать новое значение для строки.string& insert (size_t pos, const string& str);
Вставить символ до указанной позиции в pos.string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);
Вставить символ до указанной позиции в pos.string& insert (size_t pos, const char* s);
Вставить символ до указанной позиции в pos.string& insert (size_t pos, const char* s, size_t n);
Вставить символ до указанной позиции в pos.string& insert (size_t pos, size_t n, char c);
Вставить символ до указанной позиции в pos.void insert (iterator p, size_t n, char c);
Вставить символ до указанной позиции в pos.iterator insert (iterator p, char c);
Вставить символ до указанной позиции в pos.template <class InputIterator> void insert (iterator p, InputIterator first, InputIterator last);
Вставить символ до указанной позиции в pos.string& erase (size_t pos = 0, size_t len = npos);
Стирает символ(ы) из строки.iterator erase (const_iterator p);
Стирает символ(ы) из строки.iterator erase (const_iterator first, const_iterator last);
Стирает символ(ы) из строки.string& replace (size_t pos, size_t len, const string& str);
Заменяет содержимое строки.string& replace (const_iterator i1, const_iterator i2, const string& str);
Заменяет содержимое строки.string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);
Заменяет содержимое строки.string& replace (size_t pos, size_t len, const char* s);
Заменяет содержимое строки.string& replace (const_iterator i1, const_iterator i2, const char* s);
Заменяет содержимое строки.string& replace (size_t pos, size_t len, const char* s, size_t n);
Заменяет содержимое строки.string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);
Заменяет содержимое строки.string& replace (size_t pos, size_t len, size_t n, char c);
Заменяет содержимое строки.string& replace (const_iterator i1, const_iterator i2, size_t n, char c);
Заменяет содержимое строки.template <class InputIterator> string& replace (const_iterator i1, const_iterator i2, InputIterator first, InputIterator last);
Заменяет содержимое строки.string& replace (const_iterator i1, const_iterator i2, initializer_list<char> il);
Заменяет содержимое строки.void swap (string& str);
Меняет содержимое текущей строки на str.void pop_back();
Удаляет последний символ из строки.Операции
c_str
Отдаёт содержимое строки в типе chardata
get_allocator
copy
find
rfind
find_first_of
find_last_of
find_first_not_of
find_last_not_of
substr(pos, n)
-Bозвращает n символов строки str начиная с позиции poscompare
npos
operator+
relational operators
swap
operator>>
operator<<
getline