string (C++)

string (C++)

29.06.2021


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

Отдаёт содержимое строки в типе char

data

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