Операции над строками
Для стандартных строк перегружен ряд операций.
Операция присваивания позволяет присвоить стандартной строке другую строку, строку С (или литерал), отдельный символ. Все показанные ниже присваивания допустимы:
char с = ' С ';
char cs[20] = "С string.";
string sOld("Source string.");
string sNew;
sNew = sOld;
sNew = cs;
sNew = "Literal string.";
sNew = c;
Перегруженная операция сложения выполняет конкатенацию строк, причем возможна как конкатенация двух строк с присвоением результата третьей строке, так и присоединение строки в конец другой строки с помощью присваивания +=:
string si("First"), s2("Second");
string s3;
s3 = si + " " + s2;
si += s2;
Строки можно индексировать. При обычной нотации индексации проверки диапазона не делается. Однако можно применить функцию at (), также возвращающую ссылку на символ строки с указанным индексом. В этом случае при выходе за текущую длину строки выбрасывается исключение out_of_range:
string s("A short string.");
try {
cout<< s.at(30) << endl;
) catch(out_of_range e) {
cout << "Range error: "<< end! << e.what() << endl;
}
Этот фрагмент кода выводит:
Range error:
position beyond end of string in function:
basic_string::at(size_t)
index: 30 is greater than max index: 15
Наконец, для стандартных строк перегружен весь набор операций отношений: равенство, неравенство, “больше”, “меньше” и т. д. Операции < и > производят лексикографическое сравнение в соответствии с алфавитным порядком.