Конкатенация строк

Для объектов класса 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
Примечание

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов