string (C++)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
(перенаправлено с «Std::string»)

Стандартная библиотека языка программирования C++

Ввод-вывод:

Многопоточность:

  • atomic (C++11)
  • condition_variable (C++11)
  • future (C++11)
  • mutex (C++11)
  • shared_mutex (C++14)
  • thread (C++11)

Прочие:

  • algorithm
  • bitset
  • chrono (C++11)
  • codecvt (C++11)
  • complex
  • exception
  • functional
  • initializer_list (C++11)
  • iterator
  • limits
  • locale
  • memory
  • new
  • numeric
  • random (C++11)
  • ratio (C++11)
  • regex (C++11)
  • stdexcept
  • string
  • system_error (C++11)
  • tuple (C++11)
  • typeindex (C++11)
  • typeinfo
  • type_traits (C++11)
  • utility
  • valarray
Стандартная библиотека шаблонов

Последовательные контейнеры:

Ассоциативные контейнеры:

Контейнеры-адаптеры:

Стандартная библиотека языка программирования Си

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;
}

Используемые типы

Тип Описание
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();

Создает пустую строку[1].

string(const string& str);

Копирующий конструктор[1].

string(const string& str, size_t pos, size_t len = npos);

Копирующий конструктор со смещением и определенной длиной считываемой строки[1].

string(const char* s);

Конструктор, принимающий указатель на строку символов[1].

string(const char* s, size_t n);

Конструктор, принимающий указатель на строку символов с ограничением по длине считываемой строки[1].

string(size_t n, char c);

Конструктор, заполняющий одним символом n ячеек[1].

template <class InputIterator> string(InputIterator first, InputIterator last);

Конструктор, копирующий последовательность символов в диапазоне[1].

string(initializer_list<char> il);

Конструктор, копирующий инициализирующий список[1].

string(string&& str) noexcept;

Конструктор, получающий содержимое строки[1].

Деструктор

String destructor (public member function)

Оператор присваивания

string& operator= (const string& str);

Оператор реализующий присваивание переменной типа string[2].

string& operator= (const char* s);

Оператор реализующий присваивание указателя на строку[2].

string& operator= (char c);

Оператор реализующий присваивание переменной типа char[2].

string& operator= (initializer_list<char> il);

Оператор реализующий присваивание к списку инициализации из типов char[2].

string& operator= (string&& str) noexcept;

Оператор реализующий перемещение[неопределённость] содержания переменной внутрь левого значения[2].

Итераторы

begin()

Возвращает итератор с первым элементом[3].

end()

Возвращает итератор с последним элементом[4].

rbegin()

Возвращает итератор с последним элементом, но идущим в реверсивном порядке (от конца к началу)[5].

rend()

Возвращает итератор с первым элементом, но идущим в реверсивном порядке (от конца к началу)[6].

cbegin()

Возвращает константный итератор с первым элементом[3].

cend()

Возвращает константный итератор с последним элементом[4].

crbegin()

Возвращает константный итератор с последним элементом, но идущим в реверсивном порядке (от конца к началу)[5].

crend()

Возвращает константный итератор с первым элементом, но идущим в реверсивном порядке (от конца к началу)[6].

Методы

size_t size() const noexcept

Возвращает текущее количество символов в строке[7].

size_t length() const noexcept

Возвращает текущее количество символов в строке[7].

size_t max_size() const noexcept

Возвращает максимально возможную длину строки[8].

void resize(size_t n);

Изменяет размер длины строки[9].

void resize(size_t n, char c);

Изменяет размер длины строки и заполняет строку указанным символом[9].

size_t capacity() const noexcept

Возвращает длину строки выделенной памяти[10].

void reserve(size_t n = 0)

Резервирует память для n символов[11].

void clear() noexcept

Очищает строку[12].

bool empty() const noexcept

Возвращает булев флаг о том, пуста ли строка[13].

shrink_to_fit()

Элементы доступа

char& operator[] (size_t pos)

Возвращает символ находящийся по индексу в строке начиная с 0 до size() - 1[14].

const char& operator[] (size_t pos) const

Возвращает константный символ находящийся по индексу в строке начиная с 0 до size() - 1[14].

char& at (size_t pos)

Возвращает ссылку на символ, указанный в pos[15].

const char& at (size_t pos) const

Возвращает константную ссылку на символ, указанный в pos[15].

char& back()

Возвращает ссылку на последний символ строки[16].

const char& back() const

Возвращает константную ссылку на последний символ строки[16].

char& front()

Возвращает ссылку на первый символ строки[17].

const char& front() const

Возвращает константную ссылку на первый символ строки[17].

Модификаторы

string& operator+= (const string& str);

Конкатенация со строкой[18].

string& operator+= (const char* s);

Конкатенация со строкой[18].

string& operator+= (char c);

Конкатенация со строкой[18].

string& operator+= (initializer_list<char> il);

Конкатенация со строкой[18].

string& append (const string& str);

Конкатенация со строкой[19].

string& append (const string& str, size_t subpos, size_t sublen);

Конкатенация со строкой[19].

string& append (const char* s);

Конкатенация со строкой[19].

string& append (const char* s, size_t n);

Конкатенация со строкой[19].

string& append (size_t n, char c);

Конкатенация со строкой[19].

template <class InputIterator> string& append (InputIterator first, InputIterator last);

Конкатенация со строкой[19].

string& append (initializer_list<char> il);

Конкатенация со строкой[19].

void push_back (char c);

Добавить символ в конец строки[20].

string& assign (const string& str);

Задать новое значение для строки[21].

string& assign (const string& str, size_t subpos, size_t sublen);

Задать новое значение для строки[21].

string& assign (const char* s);

Задать новое значение для строки[21].

string& assign (const char* s, size_t n);

Задать новое значение для строки[21].

string& assign (size_t n, char c);

Задать новое значение для строки[21].

template <class InputIterator> string& assign (InputIterator first, InputIterator last);

Задать новое значение для строки[21].

string& assign (initializer_list<char> il);

Задать новое значение для строки[21].

string& assign (string&& str) noexcept;

Задать новое значение для строки[21].

string& insert (size_t pos, const string& str);

Вставить символ до указанной позиции в pos[22].

string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);

Вставить символ до указанной позиции в pos[22].

string& insert (size_t pos, const char* s);

Вставить символ до указанной позиции в pos[22].

string& insert (size_t pos, const char* s, size_t n);

Вставить символ до указанной позиции в pos[22].

string& insert (size_t pos, size_t n, char c);

Вставить символ до указанной позиции в pos[22].

void insert (iterator p, size_t n, char c);

Вставить символ до указанной позиции в pos[22].

iterator insert (iterator p, char c);

Вставить символ до указанной позиции в pos[22].

template <class InputIterator> void insert (iterator p, InputIterator first, InputIterator last);

Вставить символ до указанной позиции в pos[22].

string& erase (size_t pos = 0, size_t len = npos);

Стирает символ(ы) из строки[23].

iterator erase (const_iterator p);

Стирает символ(ы) из строки[23].

iterator erase (const_iterator first, const_iterator last);

Стирает символ(ы) из строки[23].

string& replace (size_t pos, size_t len, const string& str);

Заменяет содержимое строки[24].

string& replace (const_iterator i1, const_iterator i2, const string& str);

Заменяет содержимое строки[24].

string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);

Заменяет содержимое строки[24].

string& replace (size_t pos, size_t len, const char* s);

Заменяет содержимое строки[24].

string& replace (const_iterator i1, const_iterator i2, const char* s);

Заменяет содержимое строки[24].

string& replace (size_t pos, size_t len, const char* s, size_t n);

Заменяет содержимое строки[24].

string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);

Заменяет содержимое строки[24].

string& replace (size_t pos, size_t len, size_t n, char c);

Заменяет содержимое строки[24].

string& replace (const_iterator i1, const_iterator i2, size_t n, char c);

Заменяет содержимое строки[24].

template <class InputIterator> string& replace (const_iterator i1, const_iterator i2, InputIterator first, InputIterator last);

Заменяет содержимое строки[24].

string& replace (const_iterator i1, const_iterator i2, initializer_list<char> il);

Заменяет содержимое строки[24].

void swap (string& str);

Меняет содержимое текущей строки на str[25].

void pop_back();

Удаляет последний символ из строки[26].

Операции

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

Примечания

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 string::string. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  2. 2,0 2,1 2,2 2,3 2,4 string::operator=. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  3. 3,0 3,1 string::begin, string::cbegin. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  4. 4,0 4,1 string::end, string::cend. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  5. 5,0 5,1 string::rbegin, string::crbegin. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  6. 6,0 6,1 string::rend, string::crend. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  7. 7,0 7,1 string::size. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  8. string::max_size. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  9. 9,0 9,1 string::resize. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  10. string::capacity. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  11. string::reserve. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  12. string::clear. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  13. string::empty. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  14. 14,0 14,1 string::operator[]. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  15. 15,0 15,1 string::at. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  16. 16,0 16,1 string::back. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  17. 17,0 17,1 string::front. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  18. 18,0 18,1 18,2 18,3 string::operator+=. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  19. 19,0 19,1 19,2 19,3 19,4 19,5 19,6 string::append. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  20. string::push_back. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  21. 21,0 21,1 21,2 21,3 21,4 21,5 21,6 21,7 string::assign. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  22. 22,0 22,1 22,2 22,3 22,4 22,5 22,6 22,7 string::insert. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  23. 23,0 23,1 23,2 string::erase. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  24. 24,00 24,01 24,02 24,03 24,04 24,05 24,06 24,07 24,08 24,09 24,10 string::replace. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  25. string::swap. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.
  26. string::pop_back. Дата обращения: 11 сентября 2021. Архивировано 11 сентября 2021 года.

Ссылки