C++ boost :: split first of

mit*_*tch 7 c++ boost split

我有一个拆分字符串的功能:

boost::split(r,lines[i], boost::is_any_of("="));
Run Code Online (Sandbox Code Playgroud)

上面的代码按每个"="拆分字符串我想将此代码转换为只拆分一个"=".例:

__ga=223478=90234=234
Run Code Online (Sandbox Code Playgroud)

拆分后:

__ga
223478=90234=234
Run Code Online (Sandbox Code Playgroud)

这该怎么做 ?

hmj*_*mjd 11

对此没有必要提升.一个可能的解决方案是使用std::string::find_first_of()和创建两个字符串使用std::string::substr()结果:

#include <iostream>
#include <string>

int main()
{
    std::string name_value = "__ga=223478=90234=234";
    std::string name;
    std::string value;

    const auto equals_idx = name_value.find_first_of('=');
    if (std::string::npos != equals_idx)
    {
        name = name_value.substr(0, equals_idx);
        value = name_value.substr(equals_idx + 1);
    }
    else
    {
        name = name_value;
    }

    std::cout << name << std::endl
              << value << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

__ga
223478=90234=234