logo

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

compara () és una funció pública membre de la classe string. Compara el valor de l'objecte cadena (o una subcadena) amb la seqüència de caràcters especificada pels seus arguments.
El compare() pot processar més d'un argument per a cada cadena de manera que es pugui especificar una subcadena pel seu índex i per la seva longitud.
Tipus de retorn: compare() retorna un valor enter en lloc d'un valor booleà.
Sintaxis diferents per a string::compare() :

    Sintaxi 1: compara la cadena *this amb la cadena 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: si *és més llarg que str o, el primer caràcter que no coincideix és més gran>

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

>

>

Sortida:

Geeks is smaller than forGeeks Geeks is equal to Geeks>
    Sintaxi 2: compara com a màxim, len caràcters de cadena *this, començant per l'índex idx amb la cadena str.
 int string::compare (size_type idx, size_type len, const string& str) const Throws out_of_range if index>mida().>

CPP


desfer l'últim commit



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

>

>

Sortida:

Here, Geeks are forGeeks>
    Sintaxi 3: compara com a màxim, len caràcters de cadena *això comença amb l'índex idx amb, com a màxim, str_len caràcters de cadena str començant per l'índex 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>mida (). Llança fora de l'interval si 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;> }>

java mvc
>

>

Sortida:

Welcome, to techcodeview.com World>
    Sintaxi 4: compara els caràcters de la cadena *this amb els caràcters de la cadena C cstr.
 int string::compare (const char* cstr) const>

CPP


awt java



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

>

>

Sortida:

Geeks is smaller than string techcodeview.com forGeeks is equal to string forGeeks>
    Sintaxi 5: compara com a màxim, len caràcters de la cadena *this, començant per l'índex idx amb tots els caràcters de la cadena C cstr.
 int string::compare (size_type idx, size_type len, const char* cstr) const>

Tingueu en compte que cstr pot no ser un punter 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;> }>

>

>

Sortida:

Geeks are awesome people>
    Sintaxi 6: compara, com a màxim, els caràcters len de la cadena *this, començant per l'índex idx amb els caràcters chars_len dels caràcters de la matriu de caràcters.
 int string::compare (size_type idx, size_type len, const char* chars,  size_type chars_len)const>

Tingueu en compte que els caràcters han de tenir almenys caràcters chars_len. Els caràcters poden tenir valors arbitraris. Per tant, ' ' no té cap significat especial.

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

>

port d'escolta
>