C++ Программирование в среде С++ Builder 5

Операции над строками


Для стандартных строк перегружен ряд операций.

Операция присваивания позволяет присвоить стандартной строке другую строку, строку С (или литерал), отдельный символ. Все показанные ниже присваивания допустимы:

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

Наконец, для стандартных строк перегружен весь набор операций отношений: равенство, неравенство, “больше”, “меньше” и т. д. Операции < и > производят лексикографическое сравнение в соответствии с алфавитным порядком.



Содержание раздела