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

  Юрий  | 

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

 2961

 ǀ   4 

Чтобы добавить одну строку к другой строке можно использовать перегруженный оператор +=, функцию 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 (19 оценок, среднее: 5,00 из 5)
Загрузка...

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

  1. Аватар Анастасия:

    скукотища

  2. Аватар kmish:

    Пример с string& string::append(InputIterator start, InputIterator end):

  3. Евгений Евгений:

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

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

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