Шаг 392.
Библиотека STL.
Строение строковых классов. Операции сравнения

    На этом шаге мы рассмотрим операции сравнения строк.

    Для выполнения операций сравнения над строками имеются следующие методы:

  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.

    На следующем шаге мы рассмотрим обращение к символам.




Предыдущий шаг Содержание Следующий шаг