[C++] string 기능 - substr/find/rfind
Programming/C++_C#2021. 3. 30. 14:06
반응형
안녕하세요.
포스팅 할 내용은 C++에 자주 쓰이는 문자열 클래스인 string인데요.
string에는 여러 함수가 있는데 substr/find/rfind에 대해 알아보겠습니다.
- substr( )
substr( )은 새로운 메모리를 할당해 문자열 추출을 해주는 기능을 가진 함수인데요.
string substr( size_t pos = 0, size_t len = npos ) const; |
인자값 1 pos : 시작지점
인자값 2 len : 길이
string을 리턴하고 인자값 2개를 넣는 형태를 가진 함수입니다.
아래 코드 예를 보겠습니다.
#include <iostream>
#include <string>
int main( )
{
string strTest = "0123456789";
string subTest = strTest.substr(2, 7);
cout << "subTest : " << subTest << endl;
return 0;
}
결과값 :
시작 위치는 2부터 7개까지 문자열은 뽑아내면 아래와 같이 "2345678"을 리턴합니다.
참고로 len은 문자열의 마지막 문자보다 더 길이가 길게 인자값을 넣으면 문자열의 마지막 문자까지만 리턴이 되서
인자값을 넣지 않으면 전체 문자열을 리턴합니다.
다른 예1
: 문자열 strTest를 5번부터 인덱스부터 끝까지 자른다.
string strTest = "HelloWorld";
cout << strTest.substr(5);
다른 예2
: 문자열 strTest를 2번부터 5번부터 인덱스까지 자른다.
string strTest = "HelloWorld";
cout << strTest.substr(2, 5);
- find( ) / rfind( )
다른 예로 string을 분리해보도록 하겠습니다.
바로 find( ), rfind( )함수인데요.
find( 탐색 문자열, 인덱스 = 0 )
: 문자열 앞에서부터 검색해 인자값 문자열을 찾으면 첫번째로 나타나는 문자열의 인덱스를 리턴.
rfind( 탐색 문자열, 인덱스 = npos )
: 문자열 뒤에서부터 검색해 인자값 문자열을 찾으면 첫번째로 나타나는 문자열의 인덱스를 리턴.
찾지 못하면 -1을 반환합니다.
#include <iostream>
#include <string>
int main( )
{
string strTest = "abcedfg.txt";
int iPos = strTest.find('.');
string strName = strTest.substr(0, iPos);
string strExtension = strTest.substr(iPos + 1);
cout << "이름 : " << strName << endl;
cout << "확장자 : " << strExtension << endl;
return 0;
}
결과값 :
반응형
'Programming > C++_C#' 카테고리의 다른 글
[C++] test dword ptr [eax],eax ; probe page. 오류 해결 (0) | 2021.09.24 |
---|---|
[C++] priority_queue (오름차순/내림차순 큐) (0) | 2021.08.31 |
[C++] C++ 코드로 Windows버전 알아오는 방법 (0) | 2020.07.19 |
[C/C++] Visual Studio C++ 콘솔에서 화면 지우기 (0) | 2020.07.06 |
[OpenSSL] OpenSSL 설치 및 Visual Studio 적용하기 (0) | 2020.06.11 |
댓글()