1. string::substr
cplusplus : substr
https://cplusplus.com/reference/string/string/substr/
첫번째 인자로 시작 위치, 생략시 첫번째 위치이다.
두번째 인자로 길이를 받는다. 생략시 끝까지 추출한다.
string substr (size_t pos = 0, size_t len = npos) const;
std::string text = "Hello, World!";
std::string sub = text.substr(7, 5); // 7번 인덱스부터 길이 5만큼 추출 ("World")
std::string::find와 같이 사용하면?
특정 문자열을 찾아서 추가 처리하는 방식으로 사용 가능하다.
#include <iostream>
#include <string>
int main() {
std::string text = "C++ is a powerful language.";
size_t pos = text.find("powerful"); // "powerful"의 시작 위치 찾기
if (pos != std::string::npos) {
std::string sub = text.substr(pos, 8); // "powerful"의 시작 위치에서 길이 8 추출
std::cout << "Found substring: " << sub << std::endl;
} else {
std::cout << "Substring not found!" << std::endl;
}
return 0;
}
2. 방법2 : 복사 생성자를 활용하기
string의 생성자 중 일부는 부분 문자열을 생성할 수 있도록 선언되어있다.
2-1) 원본 string, 시작위치, 길이로 복사생성자.
std::string(const std::string& str, size_type pos, size_type count = npos);
std::string substring(original, 7, 5); // 시작 위치 7, 길이 5
2-2) 시작 이터레이터, 끝 이터레이터로 복사 생성자
std::string(InputIt first, InputIt last);
string sub(my_string.begin(), my_string.begin() + is_prefix.size());
3. 방법3 : Range-based syntax (C++ 20)
std::string_view sv = original;
auto substring = sv{7, 12}; // 범위 기반
'🌍 C++ Study > C++ 기초' 카테고리의 다른 글
C++ vector sort 벡터 정렬 algorithm (0) | 2024.11.17 |
---|---|
C++ string 문자열 뒤집기 std::reverse (0) | 2024.11.16 |
C++ 벡터에 연속된 숫자 채우기 std::iota (0) | 2024.11.15 |
C++ int 최대값 구하기 numeric_limits<int>::max() (0) | 2024.11.14 |
C++ map (0) | 2024.11.14 |