`
dqifa
  • 浏览: 112021 次
社区版块
存档分类
最新评论

c++实现split函数

 
阅读更多

今天工作因原因,需要实现一个split的功能,以前也做过,但一直没有把他记下来,所以又重新写了一次。这次做个笔记以备后用,各位网友感兴趣也可以直接拿来用过。

例子: 

一个这样的字符串:“123,456,789,0”。把他截取成这样的字符串数组 [123],[456],[789],[0]。众所周知c++默认没有提供这样功能的函数,下面我们自己来实现它

不多说直接上代码:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <iostream>
#include <string>
#include <vector>
using namespace std;

vector<string> splitEx(const string& src, string separate_character)
{
    vector<string> strs;
    
  int separate_characterLen = separate_character.size();//分割字符串的长度,这样就可以支持如“,,”多字符串的分隔符
    int lastPosition = 0,index = -1;
    while (-1 != (index = src.find(separate_character,lastPosition)))
    {
        strs.push_back(src.substr(lastPosition,index - lastPosition));
        lastPosition = index + separate_characterLen;
    }
    string lastString = src.substr(lastPosition);//截取最后一个分隔符后的内容
    if (!lastString.empty())
        strs.push_back(lastString);//如果最后一个分隔符后还有内容就入队
    return strs;
}

int _tmain(int argc, _TCHAR* argv[])
{
    string s = "123,456,789,0,888";
    string del = ",";  
    vector<string> strs = splitEx(s, del);  
    for ( unsigned int i = 0; i < strs.size(); i++)  
    {  
        cout << strs[i].c_str() << endl;
    }  
    return 0;  
}

 

输出: 

123 
456 
789 

888 

PS:纯粹个人使用,没有经过严格测试,也许还有一些考虑不周的地方,欢迎大家指出。

希望天一直是蓝的,真的很美......
from:http://www.cnblogs.com/vieri122/archive/2010/05/05/1728296.html
分享到:
评论

相关推荐

    c++split函数

    由于c++不含内置分割split,此文档包含c++spilt函数,和输出

    一个Split函数用法

    Split函数用法 初学者的疑惑,怎样式用

    c++builder 中的split

    .net技术中split函数应用广泛,CB中却没有,为了解决有这方面烦恼的朋友的问题,提供个小小函数。 有了它,你的问题将迎刃而解。

    VC写的Split函数实现类

    用类实现Split函数,将字符串按分隔符分成数组。采用纯C与动态内存分配方法编写,原使用与Linux C下,现采用类的方式实现,使用更加方便,使用方法如下: CCSplit oField char *Field; int FieldCount=oField....

    纯C++ 字符串处理函数大全源码

    自己封装的纯C++的字符串处理函数大全,像特别好用的 字符串切分 Split函数代码均已经过测试,并有接口说明,可方便调用。

    C++分割字符串的实现

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

    如何在c++中实现字符串分割函数split详解

    主要给大家介绍了关于如何在c++中实现字符串分割函数split的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    C/C++的split分隔字符串

    标准C/C++编写的字符串分隔函数,可以设置分隔字符串,解出字符串存到vector里面。有需要的可以下载

    决策树实现iris鸢尾花分类-C++

    我们还实现了calculate_entropy函数来计算数据集的熵,find_best_split函数来查找最佳划分点,get_majority_label函数来获取数据集中出现最多的标签,build_decision_tree函数来递归地构建决策树,predict函数来预测...

    c++string类的实现

    3) 有些函数返回的是MyString& 、Char& 等(引用),MyString、Char 等(传值)这得看你返回的对象是函数的局部变量还是全局变量(或者类当前对象成员变量);前者只能返回一个MyString、Char 等;后者强烈建议返回...

    类C语言的脚本解析执行(使用C++语言编写)20080625

    本组建主要用于在程序中解析预先编写的类C... split: replace:字符串替换函数 printf: 这些函数基本与同名c函数相同 4、可预先编写一组脚本文件,编译时为每个文件指定ID,供调用时选择 5、字符串可直接赋值及相加

    详解C++的String类的字符串分割实现

    在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考: ...

    C++常用字符串分割方法实例汇总

    本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。...//借助strtok实现split #include &lt;

    split函数

    一个代码较少的字符串截取函数 很通用的

    Visual C++2010开发权威指南(共三部分).part1.rar

    5.25 Visual C++ 2010 Split Button控件简介与开发 261 5.26 Visual C++ 2010 Network Address控件简介与开发 262 5.27 Visual C++ 2010 Check Box控件简介与开发 262 5.28 Visual C++ 2010 Radio Button控件简介与...

    Visual C++2012 开发权威指南

    Metro新特性、Visual Studio 2012九大新功能,Visual C++ 2012语言新特性,Visual C++ 2012的异步编程与网络编程,实现并行编程充分利用多核处理能力,基于Visual C++充分使用GPU的计算能力,使用Lambda、函数对象和...

    C++的字符串分割函数的使用详解

    经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim);...//借助strtok实现split #include #include int main() { char

    字符串的处理与函数的封装

    《字符串的处理与函数的封装》课程设计,可执行性强,代码简单易懂,有注释

Global site tag (gtag.js) - Google Analytics