Урок №204. Присваивание и перестановка значений с std::string

  Юрий  | 

    | 

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

 581

В этом уроке мы рассмотрим присваивание 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 (12 оценок, среднее: 4,67 из 5)
Загрузка...

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

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