Урок №205. Добавление к std::string

  Юрий Ворон  | 

    | 

  Обновл. 22 Янв 2019  | 

 319

 ǀ   2 

Чтобы добавить одну строку к концу другой строки можно использовать перегруженный оператор +=, функцию append() или push_back().

string& string::operator+=(const string& str)
string& string::append(const string& str)

   Обе функции добавляют к std::string строку str.

   Возвращают скрытый указать *this, что позволяет «связывать» объекты.

   Генерируют исключение length_error, если результат превышает максимально допустимое количество символов.

Например:

Результат:

one two three

Существует также разновидность функции append(), которая может добавлять подстроку.

string& string::append(const string& str, size_type index, size_type num)


   Эта функция добавляет к std::string строку str с количеством символов, которые указываются в num, начиная с index-а.

   Возвращает скрытый указать *this, что позволяет «связывать» объекты.

   Генерирует исключение out_of_range, если index некорректен.

   Генерирует исключение length_error, если результат превышает максимально допустимое количество символов.

Например:

Результат:

one four

Оператор += и функция append() также имеют версии, которые работают со строками C-style.

string& string::operator+=(const char* str)
string& string::append(const char* str)

   Обе функции добавляют к std::string строку C-style str.

   Возвращают скрытый указать *this, что позволяет «связывать» объекты.

   Генерируют исключение length_error, если результат превышает максимально допустимое количество символов.

   str не должен быть NULL.

Например:

Результат:

one two three

И есть ещё одна разновидность append(), которая работает со строками C-style.

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


   Добавляет к std::string количество символов, которые указаны в len, строки C-style str.

   Возвращает скрытый указать *this, что позволяет «связывать» объекты.

   Генерирует исключение length_error, если результат превышает максимально допустимое количество символов.

   Игнорирует специальные символы (включая ”).

Например:

Результат:

two five

Эта функция опасна, поэтому использовать её не рекомендуется.

Существуют также функции, которые добавляют отдельные (единичные) символы.

string& string::operator+=(char c)
void string::push_back(char c)

   Обе функции добавляют к std::string символ c.

   Оператор += возвращает скрытый указатель *this, что позволяет «связывать» объекты.

   Обе функции генерируют исключение length_error, если результат превышает максимально допустимое количество символов.

Например:

Результат:

two 3

string& string::append(size_type num, char c)


   Эта функция добавляет к std::string количество вхождений, которые указываются в num, символа c.

   Возвращает скрытый указатель *this, что позволяет «связывать» объекты.

   Генерирует исключение length_error, если результат превышает максимально допустимое количество символов.

Например:

Результат:

eeefffff

Есть ещё одна, последняя, вариация функции append(), использование которой вы не поймёте, если не знакомы с итераторами.

string& string::append(InputIterator start, InputIterator end)

   Эта функция добавляет к std::string все символы из диапазона [start, end).

   Возвращает скрытый указатель *this, что позволяет «связывать» объекты.

   Генерирует исключение length_error, если результат превышает максимально допустимое количество символов.

В следующем уроке мы рассмотрим непосредственно вставку символов в std::string.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 5,00 из 5)
Загрузка...

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

  1. Евгений:

    Как я понял, уроки начинают доходить до своего логического конца….

    1. Юрий Ворон Юрий Ворон:

      Именно.

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

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