На этом шаге мы рассмотрим операции сравнения строк.
Для выполнения операций сравнения над строками имеются следующие методы:
bool сравнение (const string& str1, const string&, str2) bool сравнение (const string& str, const char* cstr) bool сравнение (const char* cstr, const string& str)
Первая форма возвращает результат сравнения двух строк. Вторая и третья формы возвращают результат сравнения строки с С-строкой.
Параметр сравнение - одна из следующих операций:
operator =- operator != operator < operator > operator <= operator >=
Сравнение производится по лексикографическому критерию.
int string::compare (const string& str) const
Сравнивает строку *this со строкой str. Возвращает:
- 0, если строки равны;
- отрицательное число, если *this в лексикографическом отношении меньше str;
- положительное число, если *this в лексикографическом отношении больше str.
Сравнение осуществляется функцией traits::compare(). За подробностями обращайтесь к 371 шагу.
int string::compare (size_type idx, size_type len, const string&, str) const
Сравнивает не более len символов строки *this, начиная с индекса idx, со строкой str.
Если выполняется условие idx>size(), генерируется исключение out_of_range().
Сравнение выполняется так же, как в приведенном выше описании compare(str).
int string::compare (size_type idx, size_type len, const string& str, size_type str_idx, size_type str_len) const
Сравнивает не более len символоп строки *this, начиная с индекса idx, с подстрокой str, начинающейся с индекса str_idx.
Если выполняется условие idx>size(), генерируется исключение out_of_range().
Если выполняется условие str_idx>str.size(), генерируется исключение out_of_ range().
int string::compare (const char* cstr) const
Сравнивает символы *this с символами С-строки cstr.
int string:;compare (size_type idx, size_type len, const char* cstr) const
Сравнивает не более len символов строки *this, начиная с индекса idx, со всеми символами С-строки cstr.
int string::compare (size_type idx, size_type len, const char* chars, size_type chars_len) const
Сравнивает не более len символов строки *this, начиная с индекса idx, с chars_len символами символьного массива chars.
Символьный массив chars должен содержать не менее chars_len символов, которые могут иметь произвольные значения (символ \0 не имеет
особой интерпретации).
Если аргумент chars_len равен string::npos, генерируется исключение length_error.
На следующем шаге мы рассмотрим обращение к символам.