Строение строковых классов. Операции сравнения

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

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

  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.

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий