comparaţie() este o funcție publică membru a clasei șir. Acesta compară valoarea obiectului șir (sau a unui subșir) cu secvența de caractere specificată de argumentele sale.
Compara() poate procesa mai mult de un argument pentru fiecare șir, astfel încât să se poată specifica un subșir după index și după lungime.
Tip de returnare: compare() returnează mai degrabă o valoare întreagă decât o valoare booleană.
Sintaxe diferite pentru string::compare() :
- Sintaxa 1: compară șirul *this cu șirul 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: dacă *acesta este mai lung decât str sau, primul caracter care nu se potrivește este mai mare>
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;> }> |
>
>
Ieșire:
Geeks is smaller than forGeeks Geeks is equal to Geeks>
- Sintaxa 2: Compară cel mult, len caractere ale șirului *this, începând cu indexul idx cu șirul str.
int string::compare (size_type idx, size_type len, const string& str) const Throws out_of_range if index>dimensiune().>
CPP
porniți java
// 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;> }> |
>
>
Ieșire:
Here, Geeks are forGeeks>
- Sintaxa 3: Compară cel mult, len caractere ale șirului *acest începând cu index idx cu cel mult, str_len caractere ale șirului str începând cu indexul 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>mărimea(). Aruncă out_of_range dacă str_idx> str.size().>
CPP
organizarea si arhitectura calculatoarelor
// 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;> }> |
>
>
Ieșire:
Welcome, to techcodeview.com World>
- Sintaxa 4: compară caracterele șirului *acest cu caracterele șirului C 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;> }> |
>
cum se actualizează în java
>
Ieșire:
Geeks is smaller than string techcodeview.com forGeeks is equal to string forGeeks>
- Sintaxa 5: Compară cel mult, len caractere ale șirului *this, începând cu indexul idx cu toate caracterele C-string cstr.
int string::compare (size_type idx, size_type len, const char* cstr) const>
Rețineți că cstr poate să nu fie un pointer nul (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;> }> |
>
text de împachetare css
>
Ieșire:
Geeks are awesome people>
- Sintaxa 6: Compară, cel mult, len caractere ale șirului *this, începând cu index idx cu chars_len caractere ale matricei de caractere chars.
int string::compare (size_type idx, size_type len, const char* chars, size_type chars_len)const>
Rețineți că caracterele trebuie să aibă cel puțin caractere chars_len. Caracterele pot avea valori arbitrare. Astfel, „ ” nu are o semnificație specială.
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;> }> |
>
>