char_traits::compare
Porównuje do określonej liczby znaków w dwóch ciągów.
static int compare(
const char_type* _Str1,
const char_type* _Str2,
size_t _Num
);
Parametry
_Str1
Pierwsza z dwóch ciągów porównać ze sobą._Str2
Drugi z dwóch ciągów należy porównać._Num
Liczba elementów w ciągi do porównania.
Wartość zwracana
Wartość ujemna, jeżeli pierwszy ciąg mniej niż drugi jest ciąg, 0, jeżeli dwa ciągi znaków są równe, lub wartość dodatnią, jeżeli pierwszy ciąg jest większa niż drugiego ciągu.
Uwagi
Element za elementem, najpierw badania dla równości dokonywane jest porównanie między ciągi i następnie, jeśli para elementów w sekwencji badania nierówne, one poddaje się badaniu na mniej niż.
Jeśli dwa ciągi porównywanie równego zakresu, ale jeden jest dłuższa niż inne, a następnie krótszy dwóch jest mniejsza niż dłuższy.
Przykład
// char_traits_compare.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main() {
using namespace std;
char_traits<char>::char_type* s1 = "CAB";
char_traits<char>::char_type* s2 = "ABC";
char_traits<char>::char_type* s3 = "ABC";
char_traits<char>::char_type* s4 = "ABCD";
cout << "The string s1 is: " << s1 << endl;
cout << "The string s2 is: " << s2 << endl;
cout << "The string s3 is: " << s3 << endl;
cout << "The string s4 is: " << s4 << endl;
int comp1, comp2, comp3, comp4;
comp1 = char_traits<char>::compare ( s1 , s2 , 2 );
comp2 = char_traits<char>::compare ( s2 , s3 , 3 );
comp3 = char_traits<char>::compare ( s3 , s4 , 4 );
comp4 = char_traits<char>::compare ( s4 , s3 , 4 );
cout << "compare ( s1 , s2 , 2 ) = " << comp1 << endl;
cout << "compare ( s2 , s3 , 3 ) = " << comp2 << endl;
cout << "compare ( s3 , s4 , 4 ) = " << comp3 << endl;
cout << "compare ( s4 , s3 , 4 ) = " << comp4 << endl;
}
Przykładowe dane wyjściowe
The string s1 is: CAB
The string s2 is: ABC
The string s3 is: ABC
The string s4 is: ABCD
compare ( s1 , s2 , 2 ) = 1
compare ( s2 , s3 , 3 ) = 0
compare ( s3 , s4 , 4 ) = -1
compare ( s4 , s3 , 4 ) = 1
Wymagania
Nagłówek: <string>
Obszar nazw: std