美文网首页
C++字符串分割

C++字符串分割

作者: 藝龍 | 来源:发表于2017-10-24 11:55 被阅读0次

最近在研究C++,遇到一个问题需要将类似如下的字符串分割开:
17;"_testCube##e17##13##Small";17;2;0;0;1;0;;;;

  • 第一种方法:采用C++自带的方法strtok()进行分割,代码如下:
//参数我不喜欢用指针和引用这样会改变原内存空间
vector<std::string> split(string res,const char reg) 
{
    vector<string> v_value;
    char* pstr = strtok(const_cast<char*>(res.c_str()),&reg);
    while(pstr)
    {
        v_value.push_back(pstr);
        pstr = strtok(NULL,&reg);
    }
    return v_value;
}

这样的方法有个缺陷,就是我们看到字符串后面有多个分号,按照需求应该分割11参数,可是strtok()分割两个分号返回的是空指针,所以需要我们对此进行改进,留在我后续完善吧,下面介绍第二种方法。

  • 第二种方法:
    使用了size_type find( CharT ch, size_type pos = 0 );方法
vector<string> split(string res,const char reg)
{
    vector<string> v;
    signed int start;
    signed int end = res.find(reg,0);
    v.push_back(res.substr(0,end));
    start = end+1;
    while ((end = res.find(reg,start))>0)
    {
        v.push_back(res.substr(start,end-start));
        start = end+1;
    }
    return v;
}

相关文章

  • 使用boost::split_iterator进行字符串分割

    代码非常简单,实际上就是根据一个分割字符串组合,来返回分割后的字符串列表。在C++中,实际返回一个iterator...

  • C++ 读取txt,csv文件

    1、C++ 读取txt文件 2、C++ 读取csv文件附上一个分割字符串的功能函数,根据自己情况修改吧

  • 字符串分割-C++

  • C++字符串分割

    最近在研究C++,遇到一个问题需要将类似如下的字符串分割开:17;"_testCube##e17##13##Sma...

  • c++分割字符串

    1、find函数原型:size_t find ( const string& str, size_t pos = ...

  • C++分割字符串

    C++的string默认没有split函数,但是split函数又是如此常用,今天在网上查资料学习一下。方法一:使用...

  • C++字符串分割

    很多人对C++的刻板印象是C++不适合处理字符串,其实C++也是有很方便的函数可以处理字符串的。下面我们来讲一下C...

  • c++ 字符串分割处理

    第一种方式 第二种方式

  • 【2017-08-22】字符串及文本的处理(一)

    字符串的分割与匹配 字符串分割如何根据指定的分割符将一个字符串切割str.split()仅用于简单的分割符处理,只...

  • C++字符串分割方法总结

    在一些编程练习中,经常会对字符串进行处理,往往处理之前都会对字符串进行分割来提取各部分信息。在C++中虽然没有像p...

网友评论

      本文标题:C++字符串分割

      本文链接:https://www.haomeiwen.com/subject/mndtpxtx.html