split()
vector<string> split(const string& src, string separate_character)
{
vector<string> strs;
int separate_characterLen = separate_character.size();//分割字符串长度,这样就可以支持多字 符串的分隔符
int lasePosition = 0, index = -1;
while (-1 != (index = src.find(separate_character, last_position)))
{
strs.push_back(src.substr(lastPosition, index - lastPosition));
lastPosition = index + separate_characterLen;
}
string lastString = src.substr(lastPosition);
if (!lastString.empty())
strs.push_back(lastString);
return strs;
}
relaceAll()
string replaceAll(const string &src, string org_str, string rep_str)
{
vector<string> delimVec = split(src, org_str);
if (delimVec.size() <= 0)
{
cout << "can not find " << rep_str << endl;
return src;
}
string target("");
vector<string>::iterator it = delimVec.begin();
for (; it!= delimVec.end(); ++it)
{
target = target + (*it) + rep_str;
}
target = target + (*it);
return target;
}
relaceAll()
string replaceAll(const string &src, vector<string> &org_strVec, string rep_str)
{
vector<string>::iterator pOrg = org_strVec.begin();
string org_str(""), target = src;
for (; pOrg_str != org_strVec.end(); ++pOrg)
{
org_str = *pOrg;
vector<string> delimVec = split(target, org_str);
target = "";
if (delimVec.size() > 0)
{
vector<string>::iterator it = delimVec.begin();
for (; it != delimVec.end() - 1; ++it)
{
target = target + (*it) + rep_str;
}
target = target + *(it);
}
}
return target;
}
C++ 字符串拆分函数: split() 替换字符函数: replaceAll()
最新推荐文章于 2024-07-10 07:05:23 发布