常用字符串操作
记录一下自己开发过程中常用的字符串操作或封装好的函数,当然很多优秀的库已经做过封装,以便未来可以直接拿来用。
字符串分割(两个连续标记中间的空字符串也会扣出来)
/** @fn HG_DECLARE string Base::StringUtil::SplitStringIncludeEmpty(vector<string>& ret, const string& s, const string& delim)
* @brief 根据特定字符串进行字符串的分割(包含空字符串)
* @param (IN)const string& s 待分割字符串
* @param (IN)const string& delim 分割标记
* @return vector<string>& ret 返回分割后的字符串列表
*/
HG_DECLARE void SplitStringIncludeEmpty(vector<string>& ret, const string& s, const string& delim)
{
ret.clear();
size_t last = 0;
size_t index = s.find_first_of(delim, last);
while (index != string::npos)
{
string substr = s.substr(last, index - last);
ret.push_back(substr);
last = index + 1;
index = s.find_first_of(delim, last);
}
if (index - last > 0)
{
string substr = s.substr(last, index - last);
ret.push_back(substr);
}
}