Россия и Беларусь начали и продолжают войну против народа Украины!

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

  Юрий  | 

  |

  Обновл. 15 Сен 2021  | 

 36572

 ǀ   2 

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

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

  1. DarkMatter:

    Самая сухая глава из всех, к сожалению, которая заменяется беглым взглядом в документацию

  2. kmish:

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

    Результат:

    eeeYYYYttttrrrruuuu
    Y
    H
    eeeHYYYYttttrrrruuuu
    privet
    prHYYYivet

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

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