#include "stdafx.h"
#include <string>
#include <vector>
/**
* @author wujianhua
* @date 2019/03/06
* @brief 字符串拆分
* @param pszSrc:源字符串
* @param flag:字符串标记
* @param vecDat:拆分后返回保存的结果
* @return -1表示参数有误 非0表示拆分后的数量
* @Remarks
*/
int split(const char *pszSrc, const char * flag, std::vector<std::string> &vecDat)
{
if (!pszSrc || !flag)
return -1;
std::string strContent, strTemp;
strContent.assign(pszSrc);
std::string::size_type nBeginPos = 0,nEndPos = 0;
while (true)
{
nEndPos = strContent.find(flag, nBeginPos);
if (nEndPos == std::string::npos)
{
break;
}
strTemp = strContent.substr(nBeginPos, nEndPos);
nBeginPos = nEndPos+strlen(flag);
vecDat.push_back(strTemp);
}
return vecDat.size();
}
int main()
{
char data[250] = "“$GPRMC,021250.00,A,3034.16767,N,10403.58712,E,0.075,,060319,,,D*74、\r\n\r\n”";
printf("pslit:%s\r\n", data);
std::vector<std::string> newDat;
split(data, ",", newDat);
return 0;
}