<출처: 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 |