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

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函数用法

    2. **最大分割次数**:有些实现允许你限制分割的次数,例如在JavaScript中,可以指定`split`函数的第二个参数来控制最多分割几次。 3. **忽略空字符串**:在某些情况下,连续的分隔符会导致空字符串出现在结果列表...

    c++builder 中的split

    ### C++Builder中的字符串分割技巧:自定义Split函数 在.NET技术中,`Split`函数是一种非常实用且常见的工具,用于将一个字符串按照指定的分隔符进行分割,并返回一个包含分割后各部分的新字符串数组。然而,在C++...

    VC写的Split函数实现类

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

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

    这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一系列字符串操作函数。 首先,`StringProcess.cpp`和`StringProcess.h`是C++中的源代码文件和头文件。`.cpp`文件通常...

    纯C++ 文件流 处理函数

    `split函数调试.cpp`可能包含了一个用于分割字符串的函数,这是字符串处理中常见的需求。C++标准库并没有内置的`split`函数,但我们可以自定义一个,例如使用`std::stringstream`和`std::getline`来实现: ```cpp #...

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

    在C++中,实现字符串分割函数split是一项常见的任务,然而,C++标准库中并没有提供这样一个函数,本文将详细介绍如何在C++中实现字符串分割函数split,并提供了一个完整的示例代码。 首先,需要了解的是,C++标准库...

    split函数

    ### split函数:C++中的字符串分割利器 在编程领域,特别是在C++中处理字符串时,`split`函数是一个非常实用的工具,它能够帮助我们快速地将一个长字符串按照特定的分隔符进行拆分,从而得到一系列子字符串。这对于...

    RGB图像通道值分离、最邻近插值法、双线性插值法c++实现

    在C++中,可以使用`cv::split()`函数将RGB图像分解为三个单独的通道,分别对应红色、绿色和蓝色。 最邻近插值法(Nearest Neighbour Interpolation)是一种简单的图像缩放技术。它通过查找源图像中与目标位置最近的...

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

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

    split_split_split初级_分割转换函数_

    在Python中,`split()`函数是内置的字符串方法,而在其他语言如C++或Java中,可能需要通过特定的库函数或自定义方法来实现类似功能。在Python的例子中,`split(separator)`接受一个参数,即作为分隔符的字符串,返回...

    c++ 字符串分割util

    在C++标准库中,虽然没有直接提供类似Python的`split()`函数,但我们可以利用其他工具和方法来实现类似的功能。本文将深入探讨如何在C++中实现字符串分割,并以提供的`split.cpp`和`split.h`文件为例进行讲解。 ...

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

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

    C++循环创建多级目录

    然后,定义了mkDir函数来创建目录,split函数来分割字符串,char_wchart函数来将char类型的字符串转换为wchar_t类型。main函数中,调用mkDir函数来创建"D:\\rxt\\rxt\\rxt\\"目录。 方法二与方法一类似,但是在...

    kd_tree数据结构C++实现源码

    在C++中实现KD树,有助于理解其内部工作原理,并能有效地应用于各种场景,例如机器学习中的聚类、三维空间中的碰撞检测或图形学中的最近邻搜索。 首先,我们要知道KD树的基本构建过程。构建KD树时,我们需要对数据...

    python中split函数的用法-14-集合常见操作之删除数据.ev4.rar

    在Python编程语言中,`split()`函数是一个非常基础且实用的方法,主要应用于字符串处理。它允许我们将一个字符串按照指定的分隔符切分成多个子字符串,并将这些子字符串存储到一个列表(list)中。本教程将深入探讨`...

    基于暗通道和导向滤波的图像去雾算法C++实现

    OpenCV提供了丰富的图像处理函数,如`cv::split`用于分离图像通道,`cv::min`用于找到最小值,`cv::filter2D`用于导向滤波,以及`cv::imwrite`用于保存结果图像。 综上所述,基于暗通道和导向滤波的图像去雾算法...

    OpenCV实现多通道图像混合(C++实现).zip

    本文将详细解析如何使用C++通过OpenCV实现多通道图像混合,并结合给定的压缩包文件进行深入探讨。 首先,OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了丰富的...

Global site tag (gtag.js) - Google Analytics