Метод compare
Метод compare сравнивает текущую строку с другой строкой и возвращает целое число, которое показывает результат сравнения. Если строки равны, метод возвращает 0. Если текущая строка лексикографически меньше переданной строки, метод возвращает отрицательное число. Если текущая строка больше переданной строки, метод возвращает положительное число. В первом параметре мы передаем строку для сравнения, во второй - позицию в текущей строке, с которой начинать сравнение, а в третий - количество символов для сравнения.
Синтаксис
str.compare(str2)
str.compare(pos, count, str2)
str.compare(pos, count, str2, pos2, count2)
Пример
Давайте сравним две равные строки:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "abcde";
cout << str1.compare(str2) << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте сравним строку "abcde" со строкой "abcdf":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "abcdf";
cout << str1.compare(str2) << endl;
return 0;
}
Результат выполнения кода:
-1
Пример
Давайте сравним строку "abcdf" со строкой "abcde":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "abcdf";
string str2 = "abcde";
cout << str1.compare(str2) << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте сравним часть строки, начиная с позиции 1 и длиной 3 символа, со строкой "bcd":
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "bcd";
cout << str1.compare(1, 3, str2) << endl;
return 0;
}
Результат выполнения кода:
0