Урок №213. Додавання до std::string

  Юрій  | 

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

 125

Щоб додати один рядок до іншого, можна використати перевантажений оператор +=, функцію 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 Зірок (1 оцінок, середня: 5,00 з 5)
Loading...

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

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