18. Parse Segments


文章作者: cyclezone
版权声明: 本文为博主「cyclezone」的原创文章,采用 CC BY 4.0 许可协议。转载请附上原文出处链接和本声明 cyclezone !

18. Parse Segments

woid testDemo()
{
  std::vector<std::string>  values;
  std::string strInfo = "id;name;property";
  ParseSegments(strInfo, ';', values);
}
//////////////////////////////////////////
int ParseSegments(std::string strValue, char chPartition, std::vector<std::string> & values)
{
  size_t idx = 0;
  values.clear();
  std::vector<size_t> indexs;
  for (; idx < strValue.size(); idx++)
  {
    if (strValue[idx] == chPartition)
    {
      indexs.push_back(idx);
    }
    else if (idx == strValue.size() - 1)
    {
      indexs.push_back(idx + 1);
    }
  }
  size_t nPosBegin = 0;
  for (idx = 0; idx < indexs.size(); idx++)
  {
    values.push_back(strValue.substr(nPosBegin, indexs[idx] - nPosBegin));
    nPosBegin = indexs[idx] + 1;
  }
  return idx;
}
文章作者: cyclezone
版权声明: 本文为博主「cyclezone」的原创文章,采用 CC BY 4.0 许可协议。转载请附上原文出处链接和本声明 cyclezone !

评论