logo

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

jämföra() är en offentlig medlemsfunktion av strängklassen. Den jämför värdet på strängobjektet (eller en delsträng) med sekvensen av tecken som specificeras av dess argument.
Compare() kan behandla mer än ett argument för varje sträng så att man kan specificera en delsträng genom dess index och dess längd.
Returtyp: compare() returnerar ett heltalsvärde snarare än ett booleskt värde.
Olika syntaxer för sträng::compare() :

    Syntax 1: Jämför strängen *detta med strängen 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 : om *detta är längre än str eller, är det första tecknet som inte matchar större>

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

>

>

Produktion:

Geeks is smaller than forGeeks Geeks is equal to Geeks>
    Syntax 2: Jämför som mest len-tecken i sträng *detta, med början med index idx med strängen str.
 int string::compare (size_type idx, size_type len, const string& str) const Throws out_of_range if index>storlek().>

CPP


javascript onload script



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

java jämförbart gränssnitt
>

>

Produktion:

Here, Geeks are forGeeks>
    Syntax 3: Jämför som mest len-tecken i sträng *detta börjar med index idx med högst str_len-tecken i sträng str som börjar med index 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>storlek(). Kastar out_of_range om 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;> }>

>

>

Produktion:

Welcome, to techcodeview.com World>
    Syntax 4: Jämför tecknen i strängen *detta med tecknen i C-strängens cstr.
 int string::compare (const char* cstr) const>

CPP




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

>

>

Produktion:

Geeks is smaller than string techcodeview.com forGeeks is equal to string forGeeks>
    Syntax 5: Jämför som mest len-tecken i sträng *detta, med början med index idx med alla tecken i C-strängen cstr.
 int string::compare (size_type idx, size_type len, const char* cstr) const>

Observera att cstr kanske inte är en nollpekare (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;> }>

lista sortera efter java

>

>

Produktion:

Geeks are awesome people>
    Syntax 6: Jämför som mest len-tecken i strängen *this, med början med index idx med chars_len-tecken i teckenuppsättningens tecken.
 int string::compare (size_type idx, size_type len, const char* chars,  size_type chars_len)const>

Observera att chars måste ha minst chars_len-tecken. Tecknen kan ha godtyckliga värden. Därför har ' ' ingen speciell betydelse.

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

>

>