logo

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


koľko miest v Spojených štátoch amerických



// 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;> }>

>

>

df loc

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;> }>

diana mary blacker

>

>

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;> }>

abstraktná trieda
>

>

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;> }>

>

>