C++ string 객체가 사용할 수 있는 멤버함수 find의 기본형
- size_t find (const string& str, size_t pos = 0);
- size_t find (const char* s, size_t pos = 0);
즉 find의 return 값은 size_t이다.
size_t타입은 C99표준에 정의되어 있는데, 객체나 값이 포함할 수 있는 최대의 크기를 표현하는 타입이다.
size_t타입은 unsigned형이다.
따라서 int형이나 unsigned int형으로 타입캐스팅으로 사용하는 방법도 가능하다.
(이를 모르더라도 컴파일러가 알아서 캐스팅해준다)
문자열에서 원하는 문자열을 찾으면, 해당 문자열의 시작 위치를 저장하고, 출력해주는 예제 코드이다.
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
int main() {
std::string str = "()(()((()()())(())()))(())";
std::vector<size_t> vc;
std::size_t pos = 0;
std::size_t num = 0;
while ( (num = str.find("()", pos)) != std::string::npos ) {
vc.push_back(num);
pos = num + 2;
}
std::copy(vc.begin(), vc.end(), std::ostream_iterator<size_t>(std::cout, " "));
return 0;
}
'Programming > C++' 카테고리의 다른 글
c++ 10진법 진법 변환(string) (0) | 2021.01.17 |
---|---|
C++ and 비트연산을 이용한 홀수, 짝수 판별 (0) | 2020.09.21 |
C++ 입출력 속도 증가(알고리즘 대회) (0) | 2020.09.20 |
C++ max_element(), min_element() 최대값, 최소값 (0) | 2020.08.02 |
C++ vector<vector<int> > 2차원 벡터의 크기 (0) | 2020.07.19 |