微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C boost :: split first of

我有一个拆分字符串的功能
boost::split(r,lines[i],boost::is_any_of("="));

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

__ga=223478=90234=234

拆分后:

__ga
223478=90234=234

这该怎么做 ?

解决方法

对此没有必要提升.一个可能的解决方案是使用 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;
}

输出

__ga
223478=90234=234

原文地址:https://www.jb51.cc/c/118259.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐