C++string字符串分割
2020-08-19 本文已影响0人
岑吾
可以用string类的find和substr函数
1. find函数
函数原型:size_t find(const string& str, size_t pos = 0) const;
功能说明:从pos位置开始查找子字符串str第一次出现的位置
参数说明:str为要查找的子字符串,pos从为初始查找位置
返回值:找到的话返回子字符串第一次出现的位置,否则返回string::npos
2. substr函数
函数原型:string substr(size_t pos = 0, size_t n = npos) const;
功能说明:获取从指定的起始位置开始,长度为n的子字符串
参数说明:pos为起始位置,n获取的1字符串长度
返回值:子字符串
// 字符串分割
vector<string> split(const string &str, const string &pattern)
{
vector<string> res;
if (str == "")
return res;
//在字符串末尾也加入分隔符,方便截取最后一段
string strs = str + pattern;
size_t pos = strs.find(pattern);
while (pos != strs.npos)
{
string temp = strs.substr(0, pos);
res.push_back(temp);
//去掉已分割的字符串,在剩下的字符串中进行分割
strs = strs.substr(pos + 1, strs.size());
pos = strs.find(pattern);
}
return res;
}