C++에서 string 객체를 사용하면 string::compare
으로 문자열 비교를 할 수 있습니다.
아래와 같이 함수에 비교할 string 객체를 인자로 전달하면 됩니다.
int string::compare (const string& str) const
예를 들어, s1.compare(s2)
는 문자열 s1과 s2를 비교하고 그 결과를 다음과 같이 정수(Integer)로 리턴합니다.
- s1과 s2가 같을 때 0을 리턴
- s1이 s2보다 클 때 양수 리턴
- s1이 s2보다 작을 때 음수 리턴
1. string::compare()으로 문자열 비교
아래와 같이 문자열이 같으면 0, 작으면 음수, 크면 양수를 리턴합니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1("Hello");
string s2("Hello");
string s3("Hell");
string s4("Hella");
if (s1.compare(s2) == 0)
cout << "s1 is equal to s2" << endl;
if (s1.compare(s3) > 0)
cout << "s1 is bigger than s3" << endl;
if (s1.compare(s4) > 0)
cout << "s1 is bigger than s4" << endl;
if (s4.compare(s1) < 0)
cout << "s4 is smaller than s1" << endl;
}
Output:
s1 is equal to s2
s1 is bigger than s3
s1 is bigger than s4
s4 is smaller than s1
2. string::compare()으로 부분 문자열 비교 (1)
위의 예제에서는 s1과 s2 문자열을 전체 비교하였는데, s1의 특정 문자열만 s2와 비교할 수 있습니다.
아래와 같이 s1의 문자열 index와 비교할 길이(len)를 인자로 전달하면, s1의 index부터 길이만큼의 문자열을 s2와 비교합니다.
int string::compare (size_type idx, size_type len, const string& str)
아래 예제는 mmHello
의 Index 2에서 5개에 해당하는 문자열(Hello
)을 Hello
와 비교하는 예제입니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1("mmHello");
string s2("Hello");
if (s1.compare(2, 5, s2) == 0)
cout << "s1 is equal to s2" << endl;
}
Output:
s1 is equal to s2
3. string::compare()으로 부분 문자열 비교 (2)
s1의 부분 문자열과 s2의 부분 문자열을 비교할 수도 있습니다. 아래와 같이 s2에 대한 index와 길이(len)를 인자로 전달하면 됩니다.
int string::compare (size_type idx, size_type len, const string& str, size_type str_idx, size_type str_len)
아래 예제는 mmHello
의 Index 2에서 5개 길이, kkkkHello
의 Index 4에서 5개 길이의 부분 문자열을 비교하는 예제입니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1("mmHello");
string s2("kkkkHello");
if (s1.compare(2, 5, s2, 4, 5) == 0)
cout << "s1 is equal to s2" << endl;
}
Output:
s1 is equal to s2
Loading script...
Related Posts
- [C++] 배열을 리스트(list)로 변환
- [C++] 배열에서 특정 요소 제거
- [C++] vector 모든 요소의 합계 계산
- [C++] 두개의 배열이 같은지 비교
- [C++] 배열에 특정 요소가 있는지 확인
- [C++] 2차 배열 복사 방법
- [C++] 배열 복사하는 방법 (copy, memcpy)
- [C++] 함수의 인자로 배열 전달
- [C++] vector 모든 값의 평균 계산
- [C++] vector를 문자열로 변환
- [C++] 배열에서 요소의 Index 찾기
- [C++] 배열의 중복 요소 찾기
- [C++] 배열의 중복 요소 제거
- [C++] 배열 순서 거꾸로 뒤집기
- [C++] char 배열을 string으로 변환
- [C++] string을 char 배열로 변환
- [C++] 문자열 거꾸로 뒤집기
- [C++] vector의 중복 요소 제거
- [C++] 두 배열을 하나의 배열로 합치기
- [C++] 배열 길이, 크기 얻는 방법
- [C++] 배열에서 최대값, 최소값 찾기 (3가지 방법)
- [C++] int를 string으로 변환, 3가지 방법
- [C++] 문자열 리스트(Vector, 배열) 정렬
- [C++] string의 문자 정렬
- [C++] string을 int로 변환, 3가지 방법
- [C++] string 대문자/소문자 변환 방법
- [C++] string.compare() 문자열 비교
- [C++] int를 char로 변환, 3가지 방법
- [C++] 문자열 자르기, 3가지 방법
- [C++] isdigit(), 어떤 문자가 숫자인지 확인
- [C++] strlen(), 문자열 길이 계산
- [C++] strcmp(), strncmp() 함수로 문자열 비교
- [C++] strstr(), 특정 문자열 찾기