C++에서는 compare() 함수와 ==연산자를 사용하여 두 문자열을 비교할 수 있습니다. 그렇다면 질문은 왜 두 가지 다른 방법이 있습니까? 차이점이 있나요?
compare()와 ==연산자 사이에는 몇 가지 기본적인 차이점이 있습니다. C++에서 ==연산자는 두 문자열이 동일한지 여부를 확인하기 위해 문자열에 대해 오버로드됩니다. 동일하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 따라서 Boolean 유형의 함수와 같습니다.
compare() 함수는 두 가지 다른 것을 반환합니다. 둘 다 같으면 0을 반환하고, 문자 s와 t에 대해 불일치가 발견되면 s가 t보다 작으면 -1을 반환하고, 그렇지 않으면 s가 t보다 크면 +1을 반환합니다. ASCII 코드를 사용하여 일치 여부를 확인합니다.
위의 논의에 대한 아이디어를 얻기 위해 예를 살펴보겠습니다.
예시 코드
#include <iostream> using namespace std; int main() { string str1 = "Hello"; string str2 = "Help"; string str3 = "Hello"; cout << "Comparing str1 and str2 using ==, Res: " << (str1 == str2) << endl;//0 for no match cout << "Comparing str1 and str3 using ==, Res: " << (str1 == str3) << endl;//1 for no match cout << "Comparing str1 and str2 using compare(), Res: " << str1.compare(str2) << endl;//checking smaller and greater cout << "Comparing str1 and str3 using compare(), Res: " << str1.compare(str3) << endl;//0 for no match }
출력
Comparing str1 and str2 using ==, Res: 0 Comparing str1 and str3 using ==, Res: 1 Comparing str1 and str2 using compare(), Res: -1 Comparing str1 and str3 using compare(), Res: 0