1 C++根据给定分隔符分割字符串
在对字符串处理的一些简单场景中,需要根据分隔符将字符串进行分割,比如将“1920x1080”根据“x”分割为1920和1080,将"Hello World"根据空格分割为Hello和World。
std标准库没有现成的方法可以调用,不过我们可以自己造一个简单的轮子,我们将字符串根据给定的分隔符进行分割,并将结果保存到一个std::vector<std::string>
中,以下是示例代码
#include <iostream>
#include <vector>
static void split(const std::string& str, const std::string& sp, std::vector<std::string>& vec)
{
size_t size = sp.size();
vec.clear();
size_t end = 0, start = 0;
while (start != std::string::npos && start < str.size())
{
end = str.find(sp, start);
vec.push_back(str.substr(start, end - start)); // end == 0 时压入空字符串
start = end == std::string::npos ? end : end + size;
}
if (vec.empty())
vec.push_back(str);
}
int main()
{
std::string origin_str = "1920x1080";
std::vector<std::string> split_vec;
split(origin_str, "x", split_vec);
for (int i = 0; i < split_vec.size(); ++i)
{
std::cout << split_vec[i] << std::endl;
}
return 0;
}
输出
1920
1080
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 根据给定分隔符分割字符串
原文链接:https://www.stubbornhuang.com/2660/
发布于:2023年06月13日 16:58:29
修改于:2023年06月13日 17:00:56
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50