size_t find(const string& str, size_T pos = 0) const;
str : 찾고자 하는 문자(열)
pos: 찾기 시작하는 주솟값
string.find 함수는 <string> 헤더 파일에 정의되어 있으며,
찾고자 하는 문자(열) str을 찾아준다.
그리고 str을 찾으면 해당 문자(열)이 위치한 주솟값을 반환하며, 찾지 못하면 string::npos를 반환한다.
예1. 찾는 문자(열)가 있으면 "Found"를 출력하고, 없으면 "Not found"를 출력한다.
#include <iostream>
#include <string>
int main(void) {
std::string word = "sweet new, sweet new";
std::string str;
std::cout << "found word: ";
std::cin >> str;
int pos = 0;
if (word.find(str) != std::string::npos) {
std::cout << "Found!" << '\n';
}
else {
std::cout << "Not found" << '\n';
}
return 0;
}
2. 찾는 문자(열)이 몇 개인지 출력한다.
#include <iostream>
#include <string>
int main(void) {
std::string word = "sweet new, sweet new";
std::string str;
std::cout << "found word: ";
std::cin >> str;
int pos = 0;
int i = 0;
while (word.find(str, pos) != std::string::npos) {
std::cout << "Found! " << ++i << '\n';
pos += word.find(str, pos) + str.length(); // 찾은 후에 다음 탐색 시작 위치를 구하기 위해 찾은 '문자(열)의 위치 + 문자(열) 길이'를 구한다.
}
return 0;
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] tuple (튜플) 사용법 & 예제 (0) | 2023.10.23 |
---|---|
[C++] 문자열 입력 istream::getline()과 string의 getline() (0) | 2023.10.20 |
[C++] 파스칼의 삼각형 (Pascal's triangle) (0) | 2023.10.15 |
[C/C++] 32bit 자료형 / 64bit 자료형의 크기 정리 (0) | 2023.10.13 |
C++ 컴파일과정 [링킹, 컴파일, 라이브러리, 오브젝트] (0) | 2023.10.12 |