Литмир - Электронная Библиотека
A
A

Для типа

string
предусмотрено меньше операций, но, как будет показано в главе 23, для него создано много специальных функций. Тем не менее к ним можно применять обычные операторы, как показано в следующем примере:

// ввод имени и отчества

int main()

{

  cout << "Пожалуйста, введите свое имя и отчество \n";

  string first;

  string second;

  cin >> first >> second;             // считываем две строки

  string name = first + ' ' + second; // конкатенируем строки

  cout << "Hello, " << name << '\n';

}

Для строк оператор

+
означает конкатенацию; иначе говоря, если переменные
s1
и
s2
имеют тип
string
, то
s1+s2
является строкой, в которой вслед за символами строки
s1
следуют символы строки
s2
. Например, если строка
s1
имеет значение "
Hello
", а строка
s2
— значение "
World
", то
s1+s2
содержит значение "
HelloWorld
". Особенно полезным является сравнение строк.

// ввод и сравнение имен

int main()

{

  cout << "Пожалуйста, введите два имени\n";

  string first;

  string second;

  cin >> first >> second;    // считываем две строки

  if (first == second) cout << " имена совпадают \n";

  if (first < second)

    cout << first << " по алфавиту предшествует " << second <<'\n';

  if (first > second)

    cout << first << " по алфавиту следует за " << second <<'\n';

}

Здесь для выбора действия в зависимости от условия использована инструкция

if
, смысл которой будет подробно изложен в разделе 4.4.1.1.

3.5. Присваивание и инициализация

 

Программирование. Принципы и практика использования C++ Исправленное издание - _001.png
 Одним из наиболее интересных операторов является присваивание, которое обозначается символом
=
. Этот оператор присваивает переменной новое значение. Рассмотрим пример.

int a = 3; // начальное значение переменной a равно 3

Программирование. Принципы и практика использования C++ Исправленное издание - _022.png

a = 4; // переменная а принимает значение 4

       //("становится четверкой")

Программирование. Принципы и практика использования C++ Исправленное издание - _023.png

int b = a; // начальное значение переменной b является копией

           // значения переменной a (т.е. 4)

Программирование. Принципы и практика использования C++ Исправленное издание - _024.png

b = a+5; // переменная b принимает значение a+5 (т.е. 9)

Программирование. Принципы и практика использования C++ Исправленное издание - _025.png

a = a+7; // переменная a принимает значение a+7 (т.е. 11)

Программирование. Принципы и практика использования C++ Исправленное издание - _026.png

 

Программирование. Принципы и практика использования C++ Исправленное издание - _003.png
 Последнее присваивание заслуживает внимания. Во-первых, оно ясно показывает, что знак “равно” не означает равенства, поскольку очевидно, что
а
не равно
а+7
. Этот знак означает присваивание, т.е. помещение в переменную нового значения. Рассмотрим подробнее, что происходит при выполнении инструкции
a= a+7
.

1. Сначала получаем значение переменной

a
; оно равно целому числу
4
.

2. Затем добавляем к четверке семерку, получаем целое число

11
.

3. В заключение записываем значение

11
в переменную
a
.

Эту операцию можно продемонстрировать также на примере строк.

string a = "alpha"; // начальное значение переменной a равно "alpha"

Программирование. Принципы и практика использования C++ Исправленное издание - _027.png

a = "beta"; // переменная a принимает значение "beta"

            // (становится равной "beta")

Программирование. Принципы и практика использования C++ Исправленное издание - _028.png

string b = a; // начальное значение переменной b является

              // копией значения переменной a (т.е. "beta")

Программирование. Принципы и практика использования C++ Исправленное издание - _029.png

b = a+"gamma"; // переменная b принимает значение a+"gamma"

               // (т.е. "betagamma")

Программирование. Принципы и практика использования C++ Исправленное издание - _030.png
35
{"b":"847443","o":1}