//substring
std::string substr(char* str, unsigned int start, unsigned int end)
{
unsigned n = end - start;
char stbuf[256];
strncpy(stbuf, str + start, n);
stbuf[n] = 0;
return (std::string)stbuf;
}
/*
函数名称:SplitWords(char* strSrc, std::vector<std::string> & arrWords);
函数作用:分割字符串
*/
int SplitWords(char* strSrc, std::vector<std::string> & arrStr, char chStr)
{
unsigned int index = 0, len = 0, subIndex = 0, strlength = 0;
char *tmpSrc = strSrc;
while (*tmpSrc != '\0')
{
strlength++;
tmpSrc++;
}
tmpSrc = strSrc;
strlength++;
while (strlength--)
{
index++;
subIndex++;
if (*tmpSrc == chStr)
{
if (subIndex == 1)
{
index = 0;
tmpSrc++;
continue;
}
if (index == subIndex)
{
std::string sr/* = (char*)malloc(index)*/;
sr = substr(strSrc, 0, index - 1);
arrStr.push_back(sr);
index = 0;
//free(sr);
}
else
{
if (subIndex - index == subIndex - 1)
{
index = 0;
tmpSrc++;
continue;
}
std::string sr/* = (char*)malloc(subIndex - index)*/;
sr = substr(strSrc, subIndex - index, subIndex - 1);
arrStr.push_back(sr);
index = 0;
//free(sr);
}
}
else if (index != 0 && subIndex != 0 && *tmpSrc == '\0')
{
string sr/* = (char*)malloc(subIndex - index)*/;
sr = substr(strSrc, subIndex - index, subIndex - 1);
if (sr == "")
return arrStr.size();
arrStr.push_back(sr);
index = 0;
//free(sr);
return arrStr.size();
}
tmpSrc++;
}
return arrStr.size();
}