관리 메뉴

JIE0025

[C++] string::find, string::npos 단어 존재 여부 확인 본문

기타 학습/Language

[C++] string::find, string::npos 단어 존재 여부 확인

Kangjieun11 2022. 5. 5. 19:23
728x90

 

string 형의 데이터에서 어떤 단어가 존재하는지 찾을 떄 find와 npos를 사용한다. 

 

find

  • 문자열 앞에서부터 검색, 검색 문자열이 시작되는 위치 반환
  • 검색 문자열이 없으면 string::npos(4294967295) 반환.

 

 #include <string>
 #include <iostream>
 
 using namespace std;
 int main(){
 
 	string s = "hello my name is jieun";
 	if (s.find("me" == string::npos){
 		cout<< "X" << '\n';
 	}
    else{
    	cout<<"O"<<'\n';
    }
 	return 0;
 }

 

 

s.find("me") : s라는 문자열에서 "me"라는 문자 시작 위치를 찾는데 만약 찾지 못하면 string::npos를 반환한다. 

 

즉 s.find("me" == string::npos) 의 경우 npos가 반환되었으므로 string s에 "me"가 없다는 뜻.

 

 

 

응용

백준 2941 크로아티아 알파벳 (실버5)

https://jie0025.tistory.com/168

 

[BOJ - 문자열] 2941번 : 크로아티아 알파벳( C++)

백준 알고리즘 2941 크로아티아 알파벳 씨쁠쁠 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로

jie0025.tistory.com