少废话,直接看实例
#include <vector>
using namespace std;
std::vector<std::string> splitString(const string &strSrc, const string &pattern)
{
vector<string > resultstr;
if (strSrc == "")
return resultstr;
// 添加在字符串最后,可以截取最后一段数据
std::string strcom = strSrc + pattern;
auto pos = strSrc.find(pattern);
auto len = strcom.size();
//
while (pos != std::string::npos)
{
std::string coStr = strcom.substr(0, pos);
resultstr.push_back(coStr);
strcom = strcom.substr(pos + pattern.size(), len);
pos = strcom.find(pattern);
}
return resultstr;
}
int main(int argc, const char * argv[])
{
std::string str = "Hello@World";
for (auto itor : splitString(str, "@"))
{
printf(" -- %s \n", itor.c_str());
}
}
在这段代码中使用到string中的 find() 和 substr()
find函数原型,详细的API —— find链接
string (1)
size_t find (const string& str, size_t pos = 0) const;
c-string (2)
size_t find (const char* s, size_t pos = 0) const;
buffer (3)
size_t find (const char* s, size_t pos, size_t n) const;
character (4)
size_t find (char c, size_t pos = 0) const;
substr 函数原型,详细的 API链接
string substr (size_t pos = 0, size_t len = npos) const;