русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Порівняння рядків


Дата додавання: 2014-04-22; переглядів: 896.


Розглянемо інший приклад перезавантаження оператора. Тепер це буде оператор == (дорівнює), ми використовуватимемо його для об’єктів класу String, повертаючи 1, коли вони одинакові, і 0 – коли різні. Далі приведений лістінг програми 10.8, яка і здійснює перезавантаження.

#include <iostream.h>

#include <conio.h>

#include <bios.h>

#include <string.h>

#include <stdlib.h>

class String //clas dla ryadkiv

{private:

enum {SZ=80}; // max dla ryadkiv

char str[SZ]; //masyv dla ryadka

public:

String ()

{strcpy(str,””);}

 

String(char s[])

{strcpy(str,s);}

 

void display() const

{cout <<str;}

void getstr()

{cin.get(str,SZ);}

 

//operator

String operator+(String ss) const

{String temp;

if (strlen(str)+strlen(ss.str)<SZ)

{strcpy(temp.str,str);

strcat(temp.str,ss.str);

}

else

{cout <<”\nПереповнення!”;

exit(1);}

 

return temp;

}

int operator==(String ss) const

{return (strcmp(str,ss.str)==0)?1:0;}

};

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

int main()

{clrscr();

String s1=”yes”;

String s2=”no”;

String s3;

cout <<”Введіть ‘yes’ or ‘no’:”;

s3.getstr();

if (s3==s1)

cout<<”Введено yes\n”;

else

if (s3==s2)

cout<<”Введено no\n”;

else

cout<<”Помилка вводу\n”;

bioskey(0);

return 0;

}

Програма 10.8

 

Функція operator==() використовує бібліотечну функцію strcmp() для порівняння двох рядків. Ця функція повертає 0, якщо рядки рівні, від’ємне число, коли перший рядок менший (в лексикографічному сенсі) за другий, і додатнє число в протилежному випадку.

Інші операції порівняння теж можуть бути перевизна для порівняння рядків.

 


<== попередня лекція | наступна лекція ==>
Множинне перезавантаження | Операції арифметичного присвоювання


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн