Соединение текста
Оператор + умеет соединять и тексты типа std::string. Получается новый текст, который можно сохранить в переменную или вывести:
std::string firstName = "Анна";
std::string lastName = "Смирнова";
std::string fullName = firstName + " " + lastName;
std::cout << fullName << "\n";Это выведет:
Анна СмирноваКак и <<, + не добавляет никаких пробелов. Поэтому между именем и фамилией стоит " ": текст, в котором только пробел. Без него получилось бы АннаСмирнова.
С помощью += текст добавляется в конец переменной:
std::string message = "Привет";
message += ", Анна";
message += "!";
std::cout << message << "\n";Это выведет:
Привет, Анна!Типичные ошибки:
- Два текста в кавычках с помощью
+не соединить.std::string greeting = "Привет, " + "Анна";заканчивается ошибкойinvalid operands to binary expression ('const char[15]' and 'const char[9]'). Текст в кавычках сам по себе неstd::string, и+не умеет работать с двумя такими текстами. Поэтому по одну сторону от+должен стоятьstd::string, например переменная:firstName + "!"работает. +не превращает числа в текст. Еслиpoints— этоint, то"Очки: " + pointsкомпилируется, но выводит бессмыслицу, например кусок какого-то другого текста из памяти. АfirstName + pointsзаканчивается ошибкойinvalid operands to binary expression. Поэтому числа вместе с текстом выводите с помощью<<:std::cout << "Очки: " << points;
Задание
- 1
Создайте переменную
fullNameтипаstd::string: с помощью+соединитеfirstName, пробел иlastName. - 2
Выведите
fullName. Программа должна вывестиАнна Смирнова. - 3
Под этим создайте переменную
greetingсо значением"Привет, "и добавьте к нейfirstNameс помощью+=. - 4
Добавьте к
greetingещё и восклицательный знак и выведите её на следующей строке. Программа должна вывести:Анна Смирнова Привет, Анна!