Конкатенация (сложение) строк
Для объединения двух строк в C++ можно использовать оператор +
или метод append()
.
string str1 = "Hello";
string str2 = "world!";
string result1 = str1 + ", " + str2; // используя оператор +
string result2 = str1.append(", ").append(str2); // используя метод append()
// Результат: "Hello, world!"
Обратите внимание, что метод append()
изменяет исходную строку, добавляя к ней другую строку.
Сложение символов
В C++, символы типа char
и строки типа string
имеют разные поведения и свойства. Сложение символов напрямую не приведет к конкатенации, так как символы интерпретируются как числа (ASCII коды) и с этими числами будут выполняться арифметические операции.
Если мы бы написали char1 + char2 + char3
, то это привело бы к сложению ASCII кодов символов, а не к конкатенации символов. Например, символ 'H' имеет ASCII код 72, 'e' - 101, и 'y' - 121. Таким образом, результат выражения char1 + char2 + char3
был бы 294, что представляет собой символ, не имеющий понятного отображения.
Чтобы правильно конкатенировать символы в строку, нам нужно использовать конструктор string(1, char1),
который используется, чтобы создать временную строку из одного символа char1
. Затем мы используем оператор +
для конкатенации строк и символов.
Пример программы формирования строки из символов
#include <iostream>
#include <string>
using namespace std;
int main() {
char char1 = 'H';
char char2 = 'e';
char char3 = 'y';
string result = string(1, char1) + char2 + char3;
cout << "Результат: " << result << endl;
return 0;
}
Тот же результат можно получить записав немного по-другому:
...
string result = ("" + char1) + char2 + char3;
...
Пояснение:
-
"" + char1
- Здесь пустая строка ""
складывается со значением символа char1
. Такое сложение возможно, так как пустая строка является строкой, а char1 представляет собой символ. Таким образом, результат этой операции будет строка, состоящая из одного символа.
-
("" + char1) + char2
- К результату предыдущей операции (строка из одного символа) добавляется символ char2, таким образом, получается строка, состоящая из двух символов.
-
((char1 + char2) + char3)
- К результату предыдущей операции добавляется символ char3
, окончательно формируя строку из трех символов.
Итак, в итоге в строку result
будет записана новая строка, состоящая из символов char1
, char2
и char3
.