Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 Сравнение объектов класса string - ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 7) онлайн - Studbook
Главная->Інформатика та програмування->Содержание->Сравнение объектов класса string

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 7) онлайн

Сравнение объектов класса string

Можно использовать перегруженные операции или метод compare() для сравне- ния объектов класса string. Задача состоит в том, чтобы определить, являются ли строки идентичными или какая из них предшествует другой в алфавитном поряд- ке. В программе SSTRCOM показаны некоторые возможности.

// sstrcom.cpp

// сравнение строк

#include <iostream>

#include <string>

using namespace std;

///////////////////////////////////////////////////////////

int main ( )

{

  string aName = "Иван";

  string userName;

 

  cout << "Введите Ваше имя: ";

  cin >> userName;

  if ( userName == aName )

    cout << "Привет, Иван\n";

  else if ( userName < aName )

    cout << "Ваше имя идет до имени Иван\n";

  else

    cout << "Ваше имя идет после имени Иван\n";

 

  int n = userName.compare ( 0, 2, aName, 0, 2 );

  cout << "Первые две буквы Вашего имени ";

  if ( n == 0 )

    cout << "совпадают ";

  else if ( n < 0 )

    cout << "идут до ";

  else

    cout << "идут после ";

 

  cout << aName.substr ( 0, 2 ) << endl;

  return 0;

}

 

В первой части программы операции == и < используются для определения того, является ли написанное пользователем имя идентичным имени Иван или оно предшествует или следует за ним в алфавитном порядке. Во второй части программы метод compare() сравнивает только первые две буквы слова «Иван» с первыми двумя буквами имени, напечатанного пользователем (userName). Аргу- ментами этой версии метода compare() являются начальная позиция userName, число символов, которые надо сравнить, строка, используемая для сравнения (aName), а также начальная позиция и количество символов в строке aName. Вот пример взаимодействия с программой SSTRCOM:

Введите Ваше имя: Алексей

Ваше имя идет до имени Иван

Первые две буквы Вашего имени идут до Ив

Первые две буквы имени «Иван» получают, используя метод substr(). Он воз- вращает фрагмент строки, для которой метод был вызван. Его первый аргу- мент — это позиция фрагмента, а второй — количество символов.

 

32