`

C++实现的split函数

阅读更多
/*
* Split.cpp
*
*  Created on: 2008-10-28
*      Author: root
*/
/****************************************
* split实现
****************************************/
#include <iostream>
#include <string>
#include <vector>
using namespace std;

vector<string> split(const string& src, string delimit, string null_subst = "")
{
typedef basic_string<char>::size_type s_t;
static const s_t npos = -1;
if (src.empty() || delimit.empty())
{
  throw "split:empty string\0";
}
vector<string> v;
s_t deli_len = delimit.size();
s_t index = npos, last_search_position = 0;
while ((index = src.find(delimit, last_search_position)) != npos)
{
  if (index == last_search_position)
  {
   v.push_back(null_subst);
  }
  else
  {
   v.push_back(src.substr(last_search_position, index
     - last_search_position));
  }
  last_search_position = index + deli_len;
}
string last_one = src.substr(last_search_position);
v.push_back(last_one.empty() ? null_subst : last_one);
return v;
}
int main(int argc, char **argv)
{
try
{
  string s = "abcd efg higk lm";
  string del = " ";
  vector<string> v3 = split(s, del);
  cout << "----------v3:" << endl;
  for ( unsigned int i = 0; i < v3.size(); i++)
  {
   cout << v3.c_str() << endl;
  }
} catch (char *s)
{
  cout << s << endl;
}
return 0;
} 

 

分享到:
评论

相关推荐

    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