//将字符串根据给定分隔符分割成多个子字符串
//strLine 要分割的字符串
//cDelimiter 分割字符
//strArray string数组用来存放分割好的字符串
int ParseSubStrByDelimiter(string strLine, char cDelimiter, string* strArray)
{
int nSeparator = -1;
int nNextSeparator = -1;
int nStrLen = strLine.length();
int nStrArraySize = 0;
int i = 0;
//strLine replace '\t' to ' '
int nIndex = strLine.find('\t', 0);
while(nIndex >= 0)
{
strLine.replace(nIndex, 1, " ");
nIndex = strLine.find('\t', 0);
}
int nCommaPos = strLine.find(',');
int nSemicolonPos = strLine.find(';');
if (nCommaPos < 0 && nSemicolonPos < 0)
{
cDelimiter = '/';
}
switch (cDelimiter)
{
case '/ ':
for (i = 0; i < nStrLen;)
{
if (strLine.at(i) != cDelimiter)
{
nSeparator = i;
nNextSeparator = strLine.find(cDelimiter, nSeparator + 1);
if (nNextSeparator < 0)
{
strArray[nStrArraySize++] = strLine.substr(nSeparator, nStrLen - 1);
break;
}
strArray[nStrArraySize++] = strLine.substr(nSeparator, nNextSeparator-nSeparator);
i = nNextSeparator;
if (i >= nStrLen)
{
break;
}
}
else
{
i++;
}
}
break;
case ',':
case ';':
for (i = 0; i < nStrLen;)
{
if (i == 0)
{
if (strLine.at(i) == cDelimiter)
{
strArray[nStrArraySize++] = "";
nSeparator = i;
}
else
{
nSeparator = strLine.find(cDelimiter, nSeparator + 1);
if (nSeparator < 0)
{
break;
}
strArray[nStrArraySize++] = strLine.substr(0, nSeparator);
}
i = nSeparator;
}
else
{
nSeparator = i;
nNextSeparator = strLine.find(cDelimiter, nSeparator + 1);
if (nNextSeparator < 0)
{
strArray[nStrArraySize++] = strLine.substr(nSeparator + 1, nStrLen - nSeparator - 1);
break;
}
if (nNextSeparator == nSeparator + 1)
{
strArray[nStrArraySize++] = "";
}
else
{
strArray[nStrArraySize++] = strLine.substr(nSeparator + 1, nNextSeparator - nSeparator - 1);
}
i = nNextSeparator;
}
}
break;
default:
break;
}
return nStrArraySize;
}
对于你这个字符串而言这么用
string strArray[15];
int Arraysize= ParseSubStrByDelimiter(strline,'/',strArray);
strArray[Arraysize-1]就是你要的