@[TOC](C++ string split() 和 trim() 的简单实现)
引言
在Java语言中,对其中的字符串提供了比较丰富的库函数,其中使用比较多的当属 trim() 和 split(),为了在C++中使用着两个函数,需要自己编写。
string trim()
在Java语言中trim()的作用是去除首尾的空格,在C++语言中实现如下
void trim(string & str)
{
int i = 0;
while (i < str.size() && ' ' == str[i])
{
i++;
}
str.erase(0, i);
int j = str.size()-1;
while (j >= 0 && ' ' == str[j])
{
j--;
}
str.erase(j + 1, str.size() - j -1);
}
string split()
在Java语言中 split()的作用是将字符串分隔成一系列的子串,在C++语言中实现如下
vector<string> split(const string & str, char ch)
{
vector<string> res;
int i = 0;
int j = 0;
while (true)
{
j = str.find(ch, i);
if (-1 == j)
break;
res.push_back(str.substr(i, j - i));
i = j + 1;
}
res.push_back(str.substr(i, str.size() - i));
return res;
}