기타/C++ 문법

<find> 문자열 안에 문자/문자열 찾기

배발자 2022. 1. 13. 16:55
반응형

find 코딩테스트에서 정말 많이 쓰이는 함수이다. 

 

어떠한 문자 또는 문자열을 찾기 위해서 for문을 돌려가며 체크를 무식하게 해왔던 기억이 있다. 

 

그렇게 하지말고 find 함수를 사용하여 쉽게 check 를 할 수 있다. 

 

다음 코드를 보면서 find를 이해하고 문법을 바로 사용할 수 있을 정도로 익히자

 

*추가적으로 s.find("hi", 5) ; 라고 적혀있으면 "hi"라는 문자열을 s라는 문자열 5번째 위치부터 찾겠다는 뜻.

#include <iostream>
#include <string>
using namespace std; 
int main() {
	string s = "himynameis"; 
	
	cout << "    인덱스 번호     \n"; 
	for (int i = 0; i < s.size(); i++) cout << i << " ";	
	cout << "\n"; 
	for (int i = 0; i < s.size(); i++) cout<< s[i] << " "; 
	cout << "\n";

	cout << s.find('i')<<"\n";//i가 2개지만 제일 먼저 찾아지는 인덱스 반환
	cout << s.find("name")<<"\n";//해당 문자열이 있다면 제일 앞부분 인덱스 반환
	cout << s.find('z')<<"\n"; //해당 문자가 없으면 쓰레기값 반환

	if (s.find('z') == string::npos) {//다음과 같이 구현
		cout << "해당문자 없음" << "\n"; 
	}
}

출력부분

반응형