/************************************************************************************** **参数: str_src 要被分隔的字符串 ** str_char 分隔字符串的字符 **输出 一个分隔完成的数组, **如 字符串 str_src = "d,kf,5,d4" str_char = "," 那么返回返回值是 d kf 5 d4 ** ***************************************************************************************/
std::vectorstd::string split_str(const std::string& str_src, std::string str_char) { std::vectorstd::string str_vec; std::string::size_type src_pos = 0; std::string::size_type dst_pos = 0; str_vec.clear();
dst_pos = str_src.find_first_of(str_char, src_pos);
while (dst_pos != std::string::npos)
{
if (dst_pos > src_pos)
{
str_vec.push_back(str_src.substr(src_pos, dst_pos - src_pos));
}
src_pos = dst_pos + 1;
dst_pos = str_src.find_first_of(str_char, src_pos);
}
if (src_pos < str_src.size())
{
str_vec.push_back(str_src.substr(src_pos, str_src.size() - src_pos));
}
return str_vec;
}
/************************************************************************************** **函数功能: 将vector 存放的字符串拼串在一起每个字符串用指定的字符分隔 和上面示例功能相反 ** 参数: str_src 要被分隔的字符串 ** str_char 分隔字符串的字符 ** 输出: 一个分隔完成的数组, **如 字符串 str_src = "d,kf,5,d4" str_char = "," 那么返回返回值是 d kf 5 d4 ** ***************************************************************************************/ int vec_to_str_bychar(const std::vectorstd::string & str_vec, std::string & str_dst, std::string str_char) { str_dst.clear();
unsigned int vec_size = str_vec.size();
if (0 == vec_size)
{
return 0;
}
for (unsigned int i = 0; i < vec_size; i++)
{
str_dst += str_vec[i];
str_dst += str_char;
}
str_dst.erase(str_dst.size() - str_char.size(), str_char.size());
return 0;
}