특정 문자열 찾는 함수
find
std::string str = "abcdef";
str.find("c")
- 반환값: 찾는 문자열의 위치, 만약 찾지 못했을 시 string::npos 반환한다.
find_first_of
std::string dir = "/Users/forhjy/medium/articles"
dir.find_first_of("/")
- 반환값: 찾는 문자열이 처음 나타나는 위치
find_last_of
std::string dir = "/Users/forhjy/medium/articles"
dir.find_last_of("/")
- 반환값: 찾는 문자열이 마지막으로 나타나는 위치
find_first_not_of / find_last_not of / at
- find_first_not_of 함수는 처음으로 해당 문자열이 아닌 위치를 반환한다. 예제에선 처음으로 b가 아닌 위치, 즉 a 가 나타난 위치인 7을 반환한다.
- 그런데 find 도 어찌됐든 찾은 처음 위치를 반환하기에 같은 결과를 얻을 수 있다.
- find_last_not_of 함수는 마지막으로 해당 문자열이 아닌 위치를 반환한다. 예제에선 마지막으로 b가 아닌 위치, 즉 a 가 마지막으로 나타나는 위치인 14를 반환한다.
- 만약에 역으로 그 위치에 어떤 문자열이 있나 알고 싶을 땐 at 함수를 써서 확인하면 된다. at(14) 는 그래서 14번째에 어떤 문자가 있는지 알려준다.
문자열 자르는 함수
substr
- substr(특정위치, 자르고 싶은 문자열의 길이) 이런식으로 생각하면 된다.
- / 가 마지막으로 나타난 위치를 first 변수에 넣었고 해당 문자열의 마지막을 찾아서 last 변수에 넣었다.
- 하지만 a.html만 깔끔하게 출력하는 것이 목표이기에 first에 1을 더해 주었다.