iRobot СПб

Как проверять на равенство строк в C++?

Часто при работе с текстовыми данными в C++ требуется проверить, равны ли две строки. Существует несколько способов сравнения строк на равенство в C++, и в этой статье мы рассмотрим некоторые из них.

1. Оператор "=="

Самый простой способ проверить, равны ли две строки, - это использовать оператор "==".
#include <iostream>
#include <string>

int main() {
    std::string str1 = "Hello";
    std::string str2 = "World";
    
    if (str1 == str2) {
        std::cout << "Строки равны" << std::endl;
    } else {
        std::cout << "Строки не равны" << std::endl;
    }
    
    return 0;
}
Оператор "==" сравнивает содержимое строк: если они идентичны, он возвращает "true", в противном случае - "false". В этом примере строки "Hello" и "World" не равны, поэтому программа выведет "Строки не равны".

2. Функция compare()

Другой способ сравнить две строки на равенство - это использовать функцию compare().
#include <iostream>
#include <string>

int main() {
    std::string str1 = "Hello";
    std::string str2 = "World";
    
    if (str1.compare(str2) == 0) {
        std::cout << "Строки равны" << std::endl;
    } else {
        std::cout << "Строки не равны" << std::endl;
    }
    
    return 0;
}
Функция compare() возвращает 0, если строки равны, и отрицательное или положительное значение, если строки отличаются. В этом примере строки "Hello" и "World" не равны, поэтому программа выведет "Строки не равны".

3. Функция std::equal()

Третий способ, который можно использовать для проверки на равенство, - это функция std::equal().
#include <iostream>
#include <string>
#include <algorithm>

int main() {
    std::string str1 = "Hello";
    std::string str2 = "World";
    
    if (std::equal(str1.begin(), str1.end(), str2.begin())) {
        std::cout << "Строки равны" << std::endl;
    } else {
        std::cout << "Строки не равны" << std::endl;
    }
    
    return 0;
}
Функция std::equal() сравнивает элементы двух заданных диапазонов. В этом примере она сравнивает каждый символ строки "Hello" с каждым символом строки "World". Поскольку строки не равны, программа выведет "Строки не равны". Обратите внимание, что для использования этой функции вам понадобится включить заголовочный файл <algorithm>.

Заключение

В C++ существуют различные способы проверки строк на равенство. В этой статье мы рассмотрели три наиболее распространенных способа: использование оператора "==", функции compare() и функции std::equal(). Вы можете выбрать подходящий метод в зависимости от своих предпочтений и особенностей вашего кода.