[C++] std::string substr() 함수 - 문자열 분리

빵욱·2024년 4월 23일

통신데이터의 특정 부분을 추출해야 하는 일이 있어서 관련된 내용 찾아보다 정리.

 substr(const size_type _Off = 0, const size_type _Count = npos)

함수는 위와 같이 정의됨.
_Off는 문자 분리를 시작할 위치(인덱스) 이고 _Count는 시작 위치부터 몇 번까지 추출할 것인지에 대한 파라미터.
문자 분리는 시작위치 포함이다.

예시로 데이터가 "value10.1\r\n" 이렇게 있다고 할 때 10.1를 추출하고 싶으면

size_t crlfPos = response.find("\r\n");

find 함수로 \r\n" 의 시작위치를 찾은 후,

// response 의 value10.1\r\n 가 할당되어 있다 가정.
std::string valueStr = response.substr(5, crlfPos - 5);
//5 : 는 10.1의 1의 시작 위치 
// crlfPos - 4 : 내가 추출을 시작할 위치에서 \r\n의 시작 위치를 뺴면 추출할 문자 개수를 구할 수 있음.

이러면 valueStr의 10.1 이라는 문자열을 추출할 수 있다.

profile
rove drink eat

0개의 댓글