概述
字符串处理相关函数
//删除字符串开头的空格
void trim_left(string & str)
{
auto it = std::find_if_not(str.begin(), str.end(), isspace);
str.erase(str.begin(),it );
}
//删除字符串结尾的空格
void trim_right(string & str)
{
while (std::isspace(str.back()))
{
str.pop_back();
}
}
//删除字符串两端的空格
void trim(string & str)
{
trim_left(str);
trim_right(str);
}
//用char字符分隔字符串str,分隔符只有一个
vector<string> split_by_char(const string & str, char delim, bool compress_token = true)
{
vector<string> ret;
string tmp;
for (auto it = str.begin(); it != str.end();++it)
{
if (*it != delim)
{
tmp.push_back(*it);
}
else
{
if (tmp.empty())
{
if (compress_token == false)
{
ret.push_back(tmp);
}
}
else
{
ret.push_back(tmp);
tmp.clear();
}
}
}
if (!tmp.empty())
{
ret.push_back(tmp);
}
return ret;
}
//用delim中任意字符分隔字符串str,分隔符可支持多个
vector<string> split_by_str(const string & str,const string & delim, bool compress_token = true)
{
vector<string> ret;
size_t start=0;
size_t end=0;
while (1)
{
end = str.find_first_of(delim,start);
if (end == string::npos)
{
break;
}
string tmp = str.substr(start, end - start);
if (tmp.empty())
{
if (compress_token==false)
{
ret.emplace_back(std::move(tmp));
}
}
else
{
ret.emplace_back(std::move(tmp));
}
start = end + 1;
}
string tmp = str.substr(start);
if (!tmp.empty())
{
ret.emplace_back(std::move(tmp));
}
return ret;
}
最后
以上就是个性棒棒糖为你收集整理的字符串处理相关函数的全部内容,希望文章能够帮你解决字符串处理相关函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复