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++