Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Конкатенация строк
Для объектов класса basic_string
определена операция конкатенации (объединения строк). Оператор +
позволяет объединить:
- два объекта класса
basic_string
:
std::string str1("A"), str2("B"), str3;
str3 = str1 + str2;
std::cout << str3 << std::endl; // AB
- объект класса
basic_string
с символом:
std::string str1("A"), str2, str3;
char ch = 'B';
str2 = str1 + ch;
str3 = ch + str1;
std::cout << str2 << std::endl; // AB
std::cout << str3 << std::endl; // BA
std::wstring wstr1(L"A"), wstr2;
wchar_t wch = L'B';
wstr2 = wstr1 + wch;
std::wcout << wstr2 << std::endl; // AB
- объект класса
basic_string
с C-строкой или L-строкой:
std::string str1("A"), str2, str3;
str2 = str1 + "B";
str3 = "B" + str1;
std::cout << str2 << std::endl; // AB
std::cout << str3 << std::endl; // BA
std::wstring wstr1(L"A"), wstr2;
wstr2 = wstr1 + L"B";
std::wcout << wstr2 << std::endl; // AB
Обратите внимание на то, что оператор +
для объединения двух C-строк применять нельзя. Чтобы объединить две C-строки они указываются без операторов между ними. Пример:
std::string str1("A"), str2, str3;
str2 = "C" + "B"; // Ошибка
str2 = "C" + str1 + "B"; // Нормально
str3 = "C" "B"; // Нормально
Помимо оператора +
доступен оператор +=
, который производит конкатенацию с присваиванием:
std::string str1("A"), str2("B");
str1 += "C";
std::cout << str1 << std::endl; // AC
str2 += str1;
std::cout << str2 << std::endl; // BAC
str2 += 'D';
std::cout << str2 << std::endl; // BACD
std::initializer_list<char> list = {'E', 'G'};
str2 += list;
std::cout << str2 << std::endl; // BACDEG
std::wstring wstr1(L"A"), wstr2(L"B");
wstr1 += wstr2;
wstr1 += L'C';
wstr1 += L"D";
std::wcout << wstr1 << std::endl; // ABCD
Примечание
Вместо операторов
+
и +=
можно воспользоваться методами push_back()
и append()
(см. разд. 9.9).Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов