C++11实现字符串分割的示例

 更新时间:2022年01月25日 10:56:00   作者:Mr_John_Liang  
本文主要介绍了C++11实现字符串分割的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C++11 字符串分割代码示例如下,很显然, 使用了C++11 特性,代码简洁好多

#include <iostream>
#include <string>
#include <vector>
#include <regex>
 
using namespace std;
 
//没有使用C++11特性
vector<string> testSplit(string srcStr, const string& delim)
{
    int nPos = 0;
    vector<string> vec;
    nPos = srcStr.find(delim.c_str());
    while(-1 != nPos)
    {
        string temp = srcStr.substr(0, nPos);
        vec.push_back(temp);
        srcStr = srcStr.substr(nPos+1);
        nPos = srcStr.find(delim.c_str());
    }
    vec.push_back(srcStr);
    return vec;
}
 
//使用C++11特性
vector<string> testSplit11(const string& in, const string& delim)
{
    vector<string> ret;
    try
    {
        regex re{delim};
        return vector<string>{
                sregex_token_iterator(in.begin(), in.end(), re, -1),
                sregex_token_iterator()
           };      
    }
    catch(const std::exception& e)
    {
        cout<<"error:"<<e.what()<<std::endl;
    }
    return ret;
}
 
int main()
{
    vector<string>ret = testSplit("how many credits ?", " ");
    for(int i = 0 ; i < ret.size(); ++i)
    {
        cout<<ret[i]<<endl;
    }
    
    return 0;
}

C++ 实现字符串分割函数 split

#include <iostream>
#include <vector>
using namespace std;

vector<string> split( strData )
{
vector<string> vecData;
int nPos = strData.find( "," );
    while( nPos > 0 )
    {
        strTmp = strLine.substr( 0, nPos );
        vecData.push_back( strTmp );

        strLine.erase( 0, nPos+1 );
        nPos = strData.find( "," );
    }
vecData.push_back( strData );
    return vecData;
}

到此这篇关于C++11实现字符串分割的示例的文章就介绍到这了,更多相关C++11 字符串分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C/C++ 多线程的学习心得总结

    C/C++ 多线程的学习心得总结

    本篇文章是对C/C++中多线程的学习心得总结进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 全面解析C++中的析构函数

    全面解析C++中的析构函数

    这篇文章主要介绍了C++中的析构函数,为C++入门学习中的基础知识,需要的朋友可以参考下
    2016-01-01
  • C++ MiniZip实现目录压缩与解压的示例详解

    C++ MiniZip实现目录压缩与解压的示例详解

    Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法,本文主要为大家详细介绍了如何利用Zlib实现目录压缩与解压,需要的小伙伴可以参考下
    2023-11-11
  • C++ 命名空间--namespace总结

    C++ 命名空间--namespace总结

    namespace中文意思是命名空间或者叫名字空间,下面这篇文章主要给大家介绍了关于C++中名称空间namespace使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧
    2021-09-09
  • C++表达式new与delete知识详解

    C++表达式new与delete知识详解

    这篇文章主要为大家详细介绍了C++表达式new与delete知识点,学习如何动态创建对象,动态创建的对象与一般对象的区别,动态创建的对象的初始化以及释放动态分配的内存等知识点,感兴趣的朋友可以参考一下
    2016-05-05
  • C++常用语句简介

    C++常用语句简介

    这篇文章主要介绍了C++常用语句简介,文章将要介绍的常用语句有声明变量、赋值语句、cin、cout语句、库函数、自定义函数,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • C++中vector与remove()函数详解

    C++中vector与remove()函数详解

    这篇文章主要介绍了C++中vector与remove()函数,本文实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Visual Studio2022下Opencv的配置图文教程

    Visual Studio2022下Opencv的配置图文教程

    本文主要介绍了Visual Studio2022下Opencv的配置图文教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • JetBrains CLion永久激活超详细教程(最新激活方法)

    JetBrains CLion永久激活超详细教程(最新激活方法)

    JetBrains Clion 是一款专为 C/C++ 开发所设计的跨平台 IDE,本文适用 JetBrains CLion v2019.3/3.1/3.2/3.3 永久激活,附破解补丁和激活码,可以永久激活 Windows、MAC、Linux 下的 CLion,下面给大家分享JetBrains CLion永久激活超详细教程,感兴趣的朋友一起看看吧
    2023-01-01
  • C++树之遍历二叉树实例详解

    C++树之遍历二叉树实例详解

    这篇文章主要给大家介绍了关于C++树之遍历二叉树的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论