본문 바로가기
프로그래밍/C || CPP

[C++] string::find / string::npos 를 이용한 단어 유무 찾기

by _BlankSpace 2017. 12. 9.

c에서는 어떻게 단어를 찾았을까.


보통 c에서는 단어를 찾을 경우에 strcmp 함수를 이용하는 경우가 많다.

 

1
2
3
4
5
6
if (!strcmp(str1, str2)) {
    return 0;
}
else {
    return 1;
}
cs

 

이러한 경우는 char * 형을 사용하기 떄문에 c언어에서는 아주 유용하게 사용하고 있는 함수 중 하나일 것이다.

그럼 C++에서는 어떨까요.

 

특히, c++에서는 문자열을 char *형이 아닌 string 형을 쓰는 경우가 편하게 때문에 다른 방법이 필요할 것이다.

하지만, 오랜 역사로 인한 풍부한 라이브러리로 인해서 문자열을 찾는 방법은 당연히 존재한다.

 

1
2
3
4
5
string str = “hello world”;
 
if (str.find(“world”) == string::npos) {
    cout << “true”;
}
cs

 

역시나 굉장히 간단하다.

위에서 사용한 함수는 다음과 같다.

 

string::find  // 이것은 찾는 문자열의 첫번째 인덱스를 반환하는 함수이다.

string::npos // 찾는 문자열이 없는 경우에는 string::npos를 반환한다.

 

출처: https://msdn.microsoft.com

 

공감 버튼은 저에게 큰 힘이 됩니다. 한번씩 꾸욱 눌러주시면 감사하겠습니다.

댓글