Урок №214. Вставка символів і рядків в std::string

  Юрій  | 

  Оновл. 8 Жов 2021  | 

 106

Вставляти символи/рядки в std::string можна за допомогою функції insert().

string& string::insert(size_type index, const string& str)
string& string::insert(size_type index, const char* str)

   Обидві функції вставляють символи/рядки, починаючи з певного index std::string.

   Повертають прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

   Генерують виняток out_of_range, якщо index некоректний.

   Генерують виняток length_error, якщо результат перевищує максимально допустиму кількість символів.

   У другій версії функції insert() str не повинен бути NULL.

Наприклад:

Результат:

bbb
bbmmmb
bbmmmaaab

А ось версія функції insert(), яка дозволяє вставити з вказаного index std::string підрядок.

string& string::insert(size_type index, const string& str, size_type startindex, size_type num)

   Ця функція вставляє з вказаного index std::string вказану кількість символів (num) рядка str, починаючи зі startindex.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

   Генерує виняток out_of_range, якщо index або startindex некоректні.

   Генерує виняток length_error, якщо результат перевищує максимально допустиму кількість символів.

Наприклад:

Результат:

b2345bb

А ось версія функції insert(), за допомогою якої в std::string можна вставити частину рядка C-style.

string& string::insert(size_type index, const char* str, size_type len)

   Ця функція вставляє з вказаного index std::string вказану кількість символів (len) рядка C-style str.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

   Генерує виняток out_of_range, якщо index некоректний.

   Генерує виняток length_error, якщо результат перевищує максимально допустиму кількість символів.

   Ігнорує спеціальні символи (такі як ").

Наприклад:

Результат:

bbacdeb

А ось версія функції insert(), яка вставляє в std::string один і той же символ кілька разів.

string& string::insert(size_type index, size_type num, char c)

   Ця функція вставляє з певного index std::string вказану кількість входжень (num) символа c.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

   Генерує виняток out_of_range, якщо index некоректний.

   Генерує виняток length_error, якщо результат перевищує максимально допустиму кількість символів.

Наприклад:

Результат:

bbaaab

І, нарешті, функція insert() має три різні версії, які працюють з ітераторами.

void insert(iterator it, size_type num, char c)
iterator string::insert(iterator it, char c)
void string::insert(iterator it, InputIterator begin, InputIterator end)

   Перша версія функції вставляє в std::string вказану кількість входжень (num) символа c перед ітератором it.

   Друга версія функції вставляє в std::string одиночний символ c перед ітератором it і повертає ітератор в позицію вставленого символа.

   Третя версія функції вставляє в std::string всі символи діапазону (begin, end) перед ітератором it.

   Всі функції генерують виняток length_error, якщо результат перевищує максимально допустиму кількість символів.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (1 оцінок, середня: 5,00 з 5)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *