기타 학습/Language
[C++] string::find, string::npos 단어 존재 여부 확인
sdoaolo
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