split 实现(c++ string)

#include <iostream>
#include <vector>

size_t split(std::string &src, std::vector<std::string> *tokens, std::string sep)
{
	size_t last= 0;
	size_t index = src.find(sep, last);
	size_t length = src.size();
	while(index != std::string::npos)
	{
		tokens->push_back(src.substr(last, index-last));
		last = index + 1;
		index = src.find(sep, last);
	}
	if(length - last > 0)
	{
		tokens->push_back(src.substr(last, length-last));
	}
	return tokens->size();
}
int main(int argc, char* argv[])
{

	std::string src = "QWEQWE";
	std::string sep = "W";
	std::vector<std::string> tokens;
	std::cout << split(src, &tokens, sep) << std::endl;
	for(std::vector<std::string>::iterator iter = tokens.begin(); iter != tokens.end(); iter++)
	{
		std::cout << *iter->c_str() << std::endl;
	}
	return 0;
}
时间: 2024-10-12 15:47:33

split 实现(c++ string)的相关文章

Brief introduction to Java String Split 【简单介绍下Java String Split】

Split is a common function in Java. It split a full string to an array based on delimeter. For example, split "a:b:c" with ":" results in [a, b, c] In some scenario, it's better to keep the delimeter instead of discard it while splitti

Java String.split()用法小结

它是java.lang包中的String.split()方法,返回是一个数组 总结一下,仅供大家参考:1.如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");2.如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");“.”和“|”都是转义字符,

String.Split()函数

我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),当中用到了String.SPlit函数,所以能够上网查了该函数的用法 例如以下: #中使用string.Split方法来切割字符串的注意事项:string.Split给我们提供了非常灵活的使用方式, 可是假设使用不当, 会造成错误, 近期在做code review时, 看到大部分人这么使用:            string

C# String.split()用法小结。String.Split 方法 (String[],?StringSplitOptions)

split()首先是一个分隔符,它会把字符串按照split(' 字符')里的字符把字符串分割成数组,然后存给一个数组对象. 输出数组对象经常使用foreach或者for循环. 第一种方法 string s=abcdeabcdeabcde; string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 第二种方法 我们看到了结果

split string

void split(const std::string& src, const std::string& sq, StringVec& dstVec) { dstVec.clear(); std::string::size_type pos = 0; std::string::size_type pre = 0; for(;pos < src.size();pre = pos + sq.size()) { pos = src.find(sq, pre); dstVec.pu

字符串分割--java中String.split()用法

在java.lang包中有String.split()方法,返回是一个数组. 1.“.”和“|”都是转义字符,必须得加"\\"; 如果用“.”作为分隔的话,必须是如下写法: String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 如果用“|”作为分隔的话,必须是如下写法: String.split("\\|"),这样才能正确的分隔开,不能用String.split("

String Split whitespace example

String Split whitespace example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 package com.string; import java.util.Scanner; /* * Here we will learn to split the string based on whitespace.

C# string.split用法

第一种方法 string s=abcdeabcdeabcde; string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 第二种方法 我们看到了结果是以一个指定的字符进行的分割.使用另一种构造方法对多个字 符进行分割: string s="abcdeabcdeabcde"; string[] sArray1=s.

String.split引发的“内存泄露”

一直赞叹Sun对待技术的严谨和优雅(bless Sun).Sun JDK中Java库的源代码,连注释都清清楚楚.规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服.因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了. 闲话少说,回归正题.这几天,一直在为Java的“内存泄露”问题纠结.Java应用程序占用的内存在不断的.有规律的上涨,最终超过了监控阈值. 福尔摩斯不得不出手了! 说起Java的内存泄露,其实定义不是那么明确.首先,如