Урок №212. Присвоювання і перестановка значень з std::string

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

 887

На цьому уроці ми розглянемо операції присвоювання інших значень для std::string і перестановку значень двох рядків.

Присвоювання для std::string інших значень

Найпростіший спосіб присвоїти std::string інше значення — використати перевантажений оператор присвоювання =. Або, в якості альтернативи, метод assign().

string& string::operator=(const string& str)
string& string::assign(const string& str)
string& string::operator=(const char* str)
string& string::assign(const char* str)
string& string::operator=(char c)

   Ці функції дозволяють присвоювати std::string значення різних типів.

   Вони повертають прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

   Зверніть увагу, функції assign(), яка приймала б один символ, немає.

Наприклад:

Результат:

One
Two
Three
Four
5
Six Six

Метод assign() також має кілька інших різновидів.

string& string::assign(const string& str, size_type index, size_type len)

   Ця функція присвоює std::string підрядок str довжиною len, починаючи з index.

   Генерує виняток out_of_range, якщо index недопустимий.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

Наприклад:

Результат:

defgh

string& string::assign(const char* chars, size_type len)

   Ця функція присвоює std::string рядок C-style довжиною len.

   Генерує виняток length_error, якщо результат перевищує максимальну кількість символів.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

Наприклад:

Результат:

abcde

Ця функція потенційно небезпечна, тому використовувати її не рекомендується.

string& string::assign(size_type len, char c)

   Ця функція присвоює std::string певну кількість входжень символа c. Кількість входжень вказується в len.

   Генерує виняток length_error, якщо результат перевищує максимальну кількість символів.

   Повертає прихований вказівник *this, що дозволяє «зв’язувати» об’єкти.

Наприклад:

Результат:

hhhhh

Перестановка значень двох рядків


Якщо у вас є два рядки, значення яких ви хочете поміняти місцями, використовуйте функцію swap().

void string::swap(string &str)
void swap(string &str1, string &str2)

   Обидві функції міняють місцями значення двох рядків. Перший варіант функції swap() міняє місцями значення *this і str, а другий — str1 і str2.

   Використовуйте ці функції замість операції присвоювання, якщо потрібно поміняти місцями значення двох рядків.

Наприклад:

Результат:

green white
white green
green white

На наступному уроці ми розглянемо додавання значень до std::string.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (32 оцінок, середня: 5,00 з 5)
Завантаження...

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

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