Урок №206. Вставка символов и строк в std::string

  Юрий  | 

  Обновл. 2 Июл 2019  | 

 2065

 ǀ   1 

Вставлять символы/строки в 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 (14 оценок, среднее: 5,00 из 5)
Загрузка...

Комментариев: 1

  1. Аватар kmish:

    Пример функций

    Результат:

    eeeYYYYttttrrrruuuu
    Y
    H
    eeeHYYYYttttrrrruuuu
    privet
    prHYYYivet

Добавить комментарий

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

telegram канал
НОВОСТИ RAVESLI