반응형
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++] 실습: 5점 척도에 대한 표준 편차 구하기 (0) | 2021.07.15 |
---|---|
[C++] 문자열 대체: string.replace(); (0) | 2021.02.02 |
[C++] 문자열 입력: std::stringstream (0) | 2020.11.22 |
[C++] 한 줄 입력: getline(); (0) | 2020.11.15 |
[C++] 페어: STL std::pair (0) | 2020.11.04 |