string — класс с методами и переменными для организации работы со строками в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от имени строчного типа данных (; ). В языке 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; // в Си: printf(str); return 0; }
Используемые типы Тип Описание value_type char traits_type char_traits<char> allocator_type allocator<char> reference char& const_reference const char& pointer char* const_pointer const char* iterator a random access iterator to char (convertible to const_iterator) const_iterator a random access iterator to const char reverse_iterator reverse_iterator<iterator> const_reverse_iterator reverse_iterator<const_iterator> difference_type ptrdiff_t size_type size_t
Методы
Конструктор Публичная функция
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 Отдаёт содержимое строки в типе char
data Возвращает внутренний контейнер в виде указателя на тип char
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 начиная с позиции pos
compare
npos
operator+
relational operators
swap Меняет местами две переменные
operator>>
operator<<
getline
Примечания
Ссылки
Категория:Стандартная библиотека C++ Категория:Статьи с примерами кода C++