std::string::compare() v C++

porovnať () je verejná členská funkcia triedy string. Porovnáva hodnotu objektu reťazca (alebo podreťazca) so sekvenciou znakov určenou jeho argumentmi.
Porovnanie () môže spracovať viac ako jeden argument pre každý reťazec, takže je možné špecifikovať podreťazec podľa jeho indexu a podľa jeho dĺžky.
Typ návratu: Compare() vracia celočíselnou hodnotu a nie boolovskú hodnotu.
Rôzne syntaxe pre string::compare() :

    Syntax 1: Porovná reťazec *this s reťazcom str.
 int string::compare (const string& str) const Returns: 0 : if both strings are equal. A value  <0 :  if *this is shorter than str or, first character that doesn't match is smaller than str. A value>0 : ak *toto je dlhšie ako str alebo, prvý znak, ktorý sa nezhoduje, je väčší 

CPP




// CPP code for demonstrating> // string::compare (const string& str) const> #include> using> namespace> std;> void> compareOperation(string s1, string s2)> {> > // returns a value <0 (s1 is smaller than s2)> > if> ((s1.compare(s2)) <0)> > cout < < s1 < < ' is smaller than ' < < s2 < < endl;> > // returns 0(s1, is being compared to itself)> > if> ((s1.compare(s1)) == 0)> > cout < < s1 < < ' is equal to ' < < s1 < < endl;> > else> > cout < < 'Strings didn't match ';> > }> // Driver Code> int> main()> {> > string s1('Geeks');> > string s2('forGeeks');> > compareOperation(s1, s2);> > > return> 0;> }>

Výkon:

Geeks is smaller than forGeeks Geeks is equal to Geeks 
    Syntax 2: Porovnáva najviac, len znaky reťazca *this, počnúc indexom idx s reťazcom str.
 int string::compare (size_type idx, size_type len, const string& str) const Throws out_of_range if index>size(). 

CPP




// CPP code to demonstrate> // int string::compare (size_type idx, size_type len,> // const string& str) const> #include> using> namespace> std;> void> compareOperation(string s1, string s2)> {> > // Compares 5 characters from index number 3 of s2 with s1> > if> ((s2.compare(3, 5, s1)) == 0)> > cout < < 'Here, ' < < s1 < < ' are ' < < s2;> > else> > cout < < 'Strings didn't match ';> }> // Driver Code> int> main()> {> > string s1('Geeks');> > string s2('forGeeks');> > compareOperation(s1, s2);> > > return> 0;> }>

Výkon:

Here, Geeks are forGeeks 
    Syntax 3: Porovnáva najviac, len znaky reťazca *tento začínajúce indexom idx s najviac, str_len znakmi reťazca str začínajúceho indexom str_idx.
 int string::compare (size_type idx, size_type len, const string&  str, size_type str_idx, size_type str_len) const Throws out_of_range if idx>veľkosť (). Vyhodí mimo_rozsah, ak str_idx> str.size(). 

CPP




// CPP code to demonstrate> // int string::compare (size_type idx, size_type len, const string&> // str, size_type str_idx, size_type str_len) const> #include> using> namespace> std;> void> compareOperation(string s1, string s2)> {> > // Compares 5 characters from index number 0 of s1 with> > // 5 characters from index 3 of s2> > if> ((s1.compare(0, 5, s2, 3, 5)) == 0)> > cout < < 'Welcome to ' < < s1 < < s2 < < ' World';> > else> > cout < < 'Strings didn't match ';> }> // Driver Code> int> main()> {> > string s1('Geeks');> > string s2('forGeeks');> > compareOperation(s1, s2);> > > return> 0;> }>

Výkon:

Welcome, to techcodeview.com World 
    Syntax 4: Porovnáva znaky reťazca *this so znakmi C-reťazca cstr.
 int string::compare (const char* cstr) const 

CPP




// CPP code to demonstrate> // int string::compare (const char* cstr) const> #include> using> namespace> std;> void> compareOperation(string s1, string s2)> {> > // returns <0 (s1 < 'techcodeview.com')> > if> ((s1.compare('techcodeview.com')) <0)> > cout < < s1 < < ' is smaller than string ' < < 'techcodeview.com';> > //returns 0 (s2 is 'forgeeks')> > if> ((s2.compare('forGeeks')) == 0)> > cout < < endl < < s2 < < ' is equal to string ' < < s2;> > else> > cout < < 'Strings didn't match ';> > }> // Driver Code> int> main()> {> > string s1('Geeks');> > string s2('forGeeks');> > compareOperation(s1, s2);> > > return> 0;> }>

Výkon:

Geeks is smaller than string techcodeview.com forGeeks is equal to string forGeeks 
    Syntax 5: Porovnáva najviac, len znaky reťazca *this, počnúc indexom idx so všetkými znakmi C-reťazca cstr.
 int string::compare (size_type idx, size_type len, const char* cstr) const 

Všimnite si, že cstr nemusí byť nulový ukazovateľ (NULL).

CPP




// CPP code to demonstrate> // int string::compare (size_type idx, size_type len,> // const char* cstr) const> #include> using> namespace> std;> void> compareOperation(string s1)> {> > // Compares 5 characters from 0 index of s1 with 'Geeks'> > if> ((s1.compare(0, 5, 'Geeks')) == 0)> > cout < < s1 < < ' are ' < < 'awesome people';> > > else> > cout < < 'Strings didn't match ';> > }> // Driver Code> int> main()> {> > string s1('Geeks');> > compareOperation(s1);> > > return> 0;> }>

Výkon:

Geeks are awesome people 
    Syntax 6: Porovnáva maximálne len znaky reťazca *this, počnúc indexom idx so znakmi chars_len v poli znakov chars.
 int string::compare (size_type idx, size_type len, const char* chars,  size_type chars_len)const 

Upozorňujeme, že znaky musia mať aspoň znakov chars_len. Znaky môžu mať ľubovoľné hodnoty. Preto „ “ nemá žiadny špeciálny význam.

CPP




// CPP code to demonstrate> // int string::compare (size_type idx, size_type len,> // const char* chars, size_type chars_len)const> #include> using> namespace> std;> void> compareOperation(string s1, string s2)> {> > // Compares 5 characters from 0 index of s1 with> > // 5 characters of string 'Geeks'> > if> ((s1.compare(0, 5, 'Geeks', 5)) == 0)> > cout < < 'This is ' < < s1 < < s2 ;> > > else> > cout < < 'Strings didn't match ';> }> // Driver Code> int> main()> {> > string s1('Geeks');> > string s2('forGeeks');> > compareOperation(s1, s2);> > > return> 0;> }>