본문 바로가기
Algorithm/Code Module

[C++] String Split

by BAYABA 2020. 1. 14.

 

<출처: https://makedotworld.tistory.com/28>

//예시1

#include <sstream>
#include <string>
#include <vector>

/**
 @function: delimiter값을 기준으로 string data를 Tokenize하는 함수
 @return: vector<string>
*/
std::vector<std::string> TokenizeByGetline(const std::string& data, const char delimiter)
{
	std::vector<std::string> result;
	std::string token;
	std::stringstream ss(data);

	while (getline(ss, token, delimiter))
	{
		result.push_back(token);
	}

	return result;
}
//예시2

#include <string>
#include <sstring>
#include <vector>
using namespace std;


//cmd = "this is string"
void parse_record(string cmd)
{
    string token;
    stringstream ss(cmd);
    vector<string> ret;
    
    //getline function
    //@param1: stringstream
    //@param2: delimiter로 자른 각 string 결과값
    //@param3: delimiter
    while ( getline(ss, token, ' ') )
    {
        ret.push_back(token);
    }
    
    //ret[0] = this
    //ret[1] = is
    //ret[2] = string
}
/**
	@코드 사용 예시
*/

//1st. 개행문자 '\n'을 기준으로 http request message를 parsing
vector<string> dataBufParseMessage = MessageTokenizeByGetline(DataBuf.buf, '\n');

//2nd. 공백을 기준으로 http request header message를 parsing
vector<string> requestMessageFirstLine = MessageTokenizeByGetline(dataBufParseMessage[0], ' ');;

'Algorithm > Code Module' 카테고리의 다른 글

[C++] Code Module  (0) 2020.09.06
[C++] 문자열 줄단위로 받기  (0) 2020.04.30