Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
c++_ 문자열 찾기_ string.find() 본문
https://codeforces.com/problemset/problem/96/A
영어 지문 연습겸 코드포스 쉬운문제를 풀다가 발견한 함수다.
c++에서 특정 문자열이 있는지 없는지 알아보는데 매우 유용한 함수다.
코드 및 사용법
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string dangerousSituation1 = "1111111";
string dangerousSituation2 = "0000000";
string situation;
cin >> situation;
//string::npos는 특정문자열이 안에 없을때 반환하는 값 (지멋대로의 수임)이고
//만약 성립할때는 그 특정문자열이 시작하는 index를 반환한다.
if (situation.find(dangerousSituation1) == string::npos && situation.find(dangerousSituation2) == string::npos)
cout << "NO" << endl;
else
cout << "YES" << endl;
return 0;
}
주의사항
그 특정문자열이 여러개 있어도 맨앞에 있는 문자열의 시작하는 index만 반환하므로 주의할것.
여러개의 반복적인 문자열을 찾으려면 반복문과 인자를 이용해야함. (밑에 예시)
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string dangerousSituation2 = "00";
size_t strSize = 2;
string situation;
cin >> situation;
size_t pos = situation.find(dangerousSituation2);
cout << pos << endl;
while (1)
{
pos = situation.find(dangerousSituation2, pos+ strSize);
if (pos == string::npos)
break;
cout << pos << endl;
}
return 0;
}
반응형
'c++ 문법' 카테고리의 다른 글
흐름상태와 입력 유효성 검사 (0) | 2020.05.02 |
---|---|
stringstream 기본용법 (0) | 2020.05.02 |
ostream으로 출력하기 ( 기호출력, hex로 출력, 대문자출력 등등 ) (0) | 2020.04.17 |
입출력 관련 함수들 (setw, setprecision, get, getline, ignore, putback, unget, peek) (0) | 2020.04.17 |
string의 사용방법들 (예제) (0) | 2020.04.16 |
Comments