Строковые операторы
Синтаксис:
#include <string> bool operator==(const string& c1, const string& c2); bool operator!=(const string& c1, const string& c2); bool operator<(const string& c1, const string& c2); bool operator>(const string& c1, const string& c2); bool operator<=(const string& c1, const string& c2); bool operator>=(const string& c1, const string& c2); string operator+(const string& s1, const string& s2 ); string operator+(const charT* s, const string& s2 ); string operator+( charT c, const string& s2 ); string operator+( const string& s1, const charT* s ); string operator+( const string& s1, charT c ); string& operator+=(const string& append); string& operator+=(const charT* append); string& operator+=(const charT append); ostream& operator<<( ostream& os, const string& s ); istream& operator>>( istream& is, string& s ); string& operator=( const string& s ); string& operator=( const charT* s ); string& operator=( charT ch ); charT& operator[]( size_type index ); const charT& operator[]( size_type index ) const;
Строки в C++ можно присваивать и сравнивать с помощью стандартных операторов сравнения: ==, !=, <=, >=, <, >, и =. Выполнение сравнения или присваивания одной строки другой происходит за линейное время.
Две строки равны, если:
- Их размер равен, и
- Каждый символ в позиции i одной строки равен символу в позиции i в другой строке.
Сравнения между строками производятся лексикографически.
В дополнение к обычным операциям с контейнерами, строки так же могут быть сцеплены с помощью оператора + и введены/выведены с помощью потоков ввода/вывода C++ с операторами << И >>.
Например, следующий код сцепляет две строки и показывает результат:
string s1 = "Now is the time..."; string s2 = "for all good men..."; string s3 = s1 + s2; cout << "s3 is " << s3 << endl;
Больше того, строкам можно присвоить значения, которые являются другими строками, символьными массивами, или символами. Следующий код является абсолютно правильным:
char ch = 'N'; string s; s = ch;
Отдельные символы строки можно просмотреть с помощью оператора [], это происходит за константное время