C-C++中的Split函数
- 格式:pdf
- 大小:40.15 KB
- 文档页数:2
c中split的用法c中split的用法你知道吗?下面就跟你们详细介绍下c中split 的用法,希望对你们有用。
c中split的用法如下:1、用字符串分隔:using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[]sArray=Regex.Split(str,"js",RegexOptions.IgnoreC ase);foreach (string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbccc2、用多个字符来分隔:string str="aaajbbbscccjdddseee";string[] sArray=str.Split(new char[2] {'j','s'});foreach(string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbcccdddeee3、用单个字符来分隔:string str="aaajbbbjccc";string[] sArray=str.Split('j');foreach(string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbccc////////////////////////////////////////////////string[] arr = str.Split("o");这是一个具有语法错误的语句,Split 的separator 参数应该是char[] 或string[],不应是字符串。
split(,)与split(,,-1)的区别split(",")与split(",",-1)的区别下⾯通过两种情况说明⼆者的区别第⼀种:字符串最后⼀位是要切割符代码:package com.yyy.test;public class testSplit {public static void main(String[] args) {String aaa="a,b,c,d,,,,,,";String[] split = aaa.split(",");System.out.println(split.length);for(String item:split){System.out.println(item+"==========");}System.out.println("1111111111111111111111111111111111111111111111111");String[] split1 = aaa.split(",", -1);System.out.println(split1.length);for (String item:split1){System.out.println(item+"==========");}}}执⾏结果4a==========b==========c==========d==========111111111111111111111111111111111111111111111111110a==========b==========c==========d======================================================================Process finished with exit code 0总结:第⼀种情况,⼆者的区别为,如果最后n位都为切割符则split(",")不会继续切割,⽽split(",",-1)会继续切割第⼆种情况字符串最后⼀位不为切割符代码package com.yyy.test;public class testSplit2 {public static void main(String[] args) {String aaa="a,b,c,d,,,,,,e";String[] split = aaa.split(",");System.out.println(split.length);for(String item:split){System.out.println(item+"==========");}System.out.println("1111111111111111111111111111111111111111111111111");String[] split1 = aaa.split(",", -1);System.out.println(split1.length);for (String item:split1){System.out.println(item+"==========");}}}执⾏结果4a==========b==========c==========d========== 1111111111111111111111111111111111111111111111111 10a==========b==========c==========d======================================================================Process finished with exit code 0总结第⼆种情况⼆者没有区别。
C#中split的5种方法116.228.3.* 1楼第一种方法:string s=abcdeabcdeabcde;string[] sArray=s.Split('c') ;foreach(string i in sArray)Console.WriteLine(i.ToString());输出下面的结果:abdeabdeabde第二种方法:我们看到了结果是以一个指定的字符进行的分割。
使用另一种构造方法对多个字符进行分割:string s="abcdeabcdeabcde";string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;foreach(string i in sArray1)Console.WriteLine(i.ToString());可以输出下面的结果:ababab第三种方法:除了以上的这两种方法以外,第三种方法是使用正则表达式。
新建一个控制台项目。
然后先添加 using System.Text.RegularExpressions;System.Text.RegularExpressionsstring content=agcsmallmacsmallgggsmallytx;string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)foreach(string i in resultString)Console.WriteLine(i.ToString());输出下面的结果:agcmacgggytx第四种方法:string str1=我*****是*****一*****个*****教*****师;string[] str2;str1=str1.Replace(*****,*) ;str2=str1.Split(*) ;foreach(string i in str2)Console.WriteLine(i.ToString());第五种方法:string str1=我**是*****一*****个*****教*****师;我希望显示的结果为:我是一个教师。
C语言的split功能C语言是一种基础的编程语言,它的库函数中没有直接实现split功能的函数。
Split功能可以将一个字符串按照指定的分隔符进行切割,并将切割后的子字符串保存到一个数组中。
但是,我们可以使用C语言的字符串处理函数和循环结构来实现类似的功能。
下面是一个示例程序,用于演示如何在C语言中实现split功能:```c#include <stdio.h>#include <stdlib.h>#include <string.h>void split(char* str, char* delimiters, char** result, int* count)//获取字符串长度int len = strlen(str);//分配足够的内存来存储切割后的子字符串*result = (char*)malloc(len * sizeof(char));//初始化子字符串计数*count = 0;// 使用strtok函数按照分隔符切割字符串char* token = strtok(str, delimiters);while (token != NULL)//将切割后的子字符串保存到数组中strcpy(*result + (*count * len), token); //子字符串计数增加(*count)++;//继续切割下一个子字符串token = strtok(NULL, delimiters);}int maichar str[] = "Hello,World,How,Are,You"; char delimiters[] = ",";char* result[10];int count;split(str, delimiters, result, &count); //打印切割后的子字符串for (int i = 0; i < count; i++)printf("%s\n", result[i]);}//释放分配的内存free(*result);return 0;```在上面的示例程序中,我们定义了一个名为split的函数,它接受三个参数:待切割的字符串、分隔符和存储结果的指针。
Linux下常用C语言字符串操作函数stroul,strdupsnprintf()atioC中常用字符串操作函数#include <string.h>size_t strlen(const char *s) 测量字符串长度s的实际长度。
例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度char *strcat(const char *s1, const *s2) 将字符串s2连接到s1的尾部。
从s1的\0开始。
int strcmp(const *s1,const *s2) 比较s1和s2。
s1 = s2的时候返回值=0s1 < s2的时候返回至<0s1 > s2的时候返回值>0char *strchr(const char *s, char c); 返回s中首次出现C的位置的指针。
如果s中不存在c则返回NULLchar *strrchr(const char *s, char c );返回s中最后一次出现c的位置的指针。
如果没有,则返回0char *strstr(const char *haystack, const char *needle);返回haystack中needle字符串首次出现的位置的指针(不比较结束符NULL)。
若果没找到则返回NULL限定长度的比较,拷贝和追加函数int strncmp(char *s1, const char *s2, size_t n);(这些都是针对字符串的前n个字符来操作的)char *strncpy(char *dest, const char *src, size_t n);char *strncat(char *dest, const char *src, size_t n);char *strdup(char *s)返回指向被复制的字符串的指针,所需空间由malloc()分配而且需要free释放空间int atoi(const char *nptr);将字符串转换成整型数atoi()会扫描参数nptr字符串,跳过前面的空格,直到遇上数字或者正负号才开始装换,而再遇到非数字或者非字符串结束时('\0')其实ato是一族将字符转换为数的函数,atof,atol:他们分别是将字符串转换成浮点型,长整型数。
c语言字符串太长换行摘要:1.问题背景及意义2.换行方法一:使用转义字符3.换行方法二:使用字符串拼接4.换行方法三:使用输入输出函数5.换行方法四:使用第三方库6.总结与建议正文:在过去的学习和工作中,我们经常需要处理C语言中的字符串,而在某些场景下,字符串过长会导致显示不全或阅读困难。
为此,本文将介绍几种在C 语言中实现字符串换行的方法,以提高代码的可读性和实用性。
1.问题背景及意义在C语言中,字符串通常以字符数组的形式存储,当我们需要处理较长的字符串时,往往需要进行换行操作。
合理的换行不仅可以使代码更具可读性,还有助于信息传递和逻辑划分。
2.换行方法一:使用转义字符在C语言中,可以使用转义字符"" 表示换行。
例如,以下代码演示了如何在字符串中插入换行符:```c#include <stdio.h>int main() {char str[] = "这是一个很长的字符串,我们希望它在适当的位置换行。
";printf("%s", str);return 0;}```3.换行方法二:使用字符串拼接我们还可以通过字符串拼接来实现换行。
例如,以下代码演示了如何将两个字符串拼接并在适当位置换行:```c#include <stdio.h>int main() {char str1[] = "这是一段很长的字符串";char str2[] = ",我们希望它在适当的位置换行。
";char result[100];int len1 = strlen(str1);int len2 = strlen(str2);int pos = len1 + 1;strcpy(result, str1);result[len1] = "0";strcat(result + len1, str2);printf("%s", result);return 0;}```4.换行方法三:使用输入输出函数在C语言中,我们可以使用`printf`、`puts`等输入输出函数来实现换行。
C#中的Split⽤法以及详解⼀、String.Split⽅法提供了如下6个重载函数:名称说明返回包含此实例中的⼦字符串(由指定 Char 数组的元素分隔)的 String 数组。
由 .NET Compact Framework ⽀持。
返回包含此实例中的⼦字符串(由指定 Char 数组的元素分隔)的 String 数组。
参数指定返回的⼦字符串的最⼤数量。
返回包含此字符串中的⼦字符串(由指定的 Char 数组的元素分隔)的 String 数组。
参数指定是否返回空数组元素。
返回包含此字符串中的⼦字符串(由指定的 String 数组的元素分隔)的 String 数组。
参数指定是否返回空数组元素。
返回包含此字符串中的⼦字符串(由指定的 Char 数组的元素分隔)的 String 数组。
参数指定要返回⼦字符串的最⼤数量,以及是否要返回空数组元素。
返回包含此字符串中的⼦字符串(由指定的 String 数组的元素分隔)的 String 数组。
参数指定要返回⼦字符串的最⼤数量,以及是否要返回空数组元素。
以下详细举例说明:1.String.Split(Char[])string str = "aaatbbscctdd";string []strArray = str.Split(new char[]{'t'}); 或string []strArray = str.Split('t'); //单字符切割(result : "aaa" "bbscc" "dd")string []strArray = str.Split(new char[]{'t','s'}); //多字节切割(result : "aaa" "bb" "cc" "dd")2.String.Split(Char[],Int32)string str = "aaatbbscctdd";string []strArray = str.Split(new char[]{'t',2});//只切割成2份(result :"aaa" "bbscctdd")3.String.Split(Char[],StringSplitOptions)string str = "aaatbbscctddt";string []strArray = str.Split(new char[]{'t',StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd")string []strArray = str.Split(new char[]{'t',StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)4.String.Split(String[],StringSplitOptions)string str = "aaatbbscctddt";string []strArray = str.Split(new String[]{"t",StringSplitOptions.RemoveEmptyEntries});//去除空元素(result :"aaa" "bbscc" "dd")string []strArray = str.Split(new String[]{"t",StringSplitOptions.None});//保留空元素(result :"aaa" "bbscc" "dd" “”)5.String.Split(Char[],Int32,StringSplitOptions)string str = "aaatbbscctddt";string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt") string []strArray = str.Split(new char[]{'t',2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)6.String.Split(String[],Int32,StringSplitOptions)string str = "aaatbbscctddt";string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.RemoveEmptyEntries});//切割成2份且去除空元素(result :"aaa" "bbscctddt") string []strArray = str.Split(new String[]{"t",2,StringSplitOptions.None});//切割成2份且保留空元素(result :"aaa" "bbscctddt" “”)⼆、正则匹配拆分字符串提供了5个重载函数:名称说明在由构造函数中指定的正则表达式模式定义的位置拆分指定的输⼊字符串。
C# split用法小结2009-11-12 17:17首先想想说说的是,对于同行来说,这些小知识点,或许是已经很熟悉了,大有没发博文之必要;但是个人觉得:知识这个东西,需要不断的总结,温故而知新比较好.最近一段时间,本人想系统总结一些东西,即将陆陆续续的呈现出来,对大家有帮助的可以看看,没帮助的也无所谓.相信在今后一系列的总结当中,会找到你感兴趣的东西.Split用法总结如下:1.单个字符的分割:string s=abcdeabcdeabcde;string[] sArray=s.Split(c) ;foreach(string i in sArray)Console.WriteLine(i.ToString());输出下面的结果:abdeabdeabde2.对于多个字符的分割,使用一种构造方法:string s=abcdeabcdeabcde;string[] sArray=s.Split(new char(3){c,d,e}) ;foreach(string i in sArray)Console.WriteLine(i.ToString());输出下面的结果:ababab需要在这里提示说明一下的是:构造函数new char(3){c,d,e}中,如果是要以空格或非字符的形式分割,需要用单引号括起来,如new char(){''};3.用正则表达式首先在程序中需要引用正则表达式相关的程序集:using System.Text.RegularExpressions; 然后使用方法如下:string content=agcsmallmacsmallgggsmallytx;string[]resultString=System.Text.RegularExpressions .Regex.Split(content,small,R egexOptions.IgnoreCase)foreach(string i in resultString)Console.WriteLine(i.ToString());输出下面的结果:agcmacgggytx总结:其中对于1,2两种方法较为常用,第3种方法也能实现相应的效果.如果正则表达式这一块的知识比较熟的话,不妨也可以用第3种方法.。
c语言分割string存入数组最快的方法C语言分割string存入数组最快的方法在C语言中,分割string并将结果存入数组的问题是一个常见的情况。
本文将介绍几种最快的方法来解决这个问题。
方法一:使用strtok函数strtok函数是C语言中用于分割字符串的函数,它通过指定分隔符来将字符串分割成多个子串。
以下是使用strtok函数的示例代码:#include <>#include <>int main() {char str[] = "Hello, World! This is a test.";char delimiters[] = " .,!";char *token;token = strtok(str, delimiters);while (token != NULL) {printf("%s\n", token);token = strtok(NULL, delimiters);}return 0;}方法二:使用sscanf函数sscanf函数是C语言中用于从字符串中按照指定格式提取数据的函数。
我们可以使用它来分割字符串并将子串存入数组。
以下是使用sscanf函数的示例代码:#include <>int main() {char str[] = "Hello, World! This is a test.";char substr[20];int i = 0;while (sscanf(str + i, "%s", substr) == 1) {printf("%s\n", substr);i += strlen(substr) + 1;}return 0;}方法三:使用自定义函数除了使用库函数外,我们还可以编写自己的函数来分割字符串。
Pythonsplit函数使用方法(分割数组)Python中的split(函数是字符串对象的一个方法,用于将字符串分割成多个子字符串,并返回一个由这些子字符串组成的列表。
split(函数可以根据指定的分隔符将字符串分割为多个部分,而不需要遍历整个字符串的每一个字符。
在本文中,我们将讨论split(函数的用法以及一些示例。
split函数的基本用法是通过传递分隔符参数来将字符串分割成多个子字符串。
分隔符可以是一个字符或多个字符的组合。
如果未指定分隔符参数,则split(函数默认使用空格作为分隔符。
下面是split(函数的基本语法:```str.split([sep [, maxsplit]])```其中,str是要进行分割的字符串,sep是分隔符参数,maxsplit是可选参数,用于指定最大分割次数。
如果未指定maxsplit参数,则默认将字符串分割为尽可能多的部分。
下面是一些使用split(函数的示例:1.使用空格作为分隔符:```pythonstr = "Hello World"result = str.splitprint(result) # ['Hello', 'World']```以上示例将字符串"Hello World"分割为两个子字符串"Hello"和"World",并返回一个包含这两个子字符串的列表。
2.使用逗号作为分隔符:```pythonstr = "apple,banana,orange"result = str.split(",")print(result) # ['apple', 'banana', 'orange']```以上示例将字符串"apple,banana,orange"分割为三个子字符串"apple"、"banana"和"orange",并返回一个包含这三个子字符串的列表。
c 字符串截取空格后的字符串-回复题目:[字符串截取空格后的字符串]导言:字符串截取是在文本处理中常常遇到的问题之一。
本文将以"[字符串截取空格后的字符串]"为主题,一步一步回答有关这个问题的各个环节,帮助读者明确截取字符串的方法与技巧。
I. 什么是字符串截取?字符串截取是指从一个字符串中选择特定的一部分字符,将其提取出来。
截取字符串可以根据需要获取字符串中的特定部分,以便进行进一步处理。
II. 字符串截取的原则是什么?字符串截取的原则可以根据具体需求而定,但常见的方式是根据指定的标记进行截取,例如空格字符。
在本题中要求截取空格后的字符串,那么我们就需要关注字符串中的空格位置。
III. 如何确定字符串中空格的位置?确定字符串中空格位置的方法有多种,常见的方法是使用遍历字符串的方式,逐个检查字符是否为空格。
可以使用循环结构和条件判断语句来实现。
IV. 如何截取空格后的字符串?在确定字符串中空格位置后,我们就可以使用相应的函数或方法来实现字符串的截取。
主要有以下两种方式:1. 使用字符串切片操作:根据空格的位置,通过指定的索引范围,将空格后的字符串提取出来。
2. 使用字符串的截取函数或方法:可以根据空格的位置调用相应的函数或方法进行字符串截取。
V. 代码示例:python# 使用字符串切片操作def extract_string(text):index = text.find(" ")if index == -1:return ""return text[index+1:]# 使用字符串的截取函数或方法def extract_string(text):index = text.find(" ")if index == -1:return ""return text.split(" ")[1:]VI. 字符串截取的应用场景字符串截取在实际的开发和编程中有广泛的应用,主要用于以下方面:1. 数据清洗和预处理:在数据处理过程中,可能需要从原始数据中提取特定的信息,例如从输入的姓名中截取姓氏。
在ABAP中,可以使用内建的SPLIT函数来执行字符串的分割操作。
这个函数的基本语法是:`SPLIT <c> AT <del> INTO <c1> ... <cn>`。
其中,`<c>`是要进行分割的源字符串,`<del>`是用作分隔符的字符或字符序列,`<c1>, ... , <cn>`是用来接收分割后的各个子串的变量。
例如,如果我们有一个包含逗号分隔的单词的字符串,我们可以使用如下的方式来将这个字符串分割成单个的单词:```abapDATA: BEGIN OF ls_out, text TYPE c LENGTH 999, END OF ls_out. DATA:lt_out LIKE TABLE OF ls_out. "拆分到表里SPLIT 字串AT ',' INTO TABLE 表"拆分到变量里SPLIT 字串AT ',' INTO lv_left lv_right. *SEGMENT *根据分隔符获取指定位置的字符串,可以用来拆分字符串,INDEX 用来指定位置,指定位置不存在时,*会抛出异常CX_SY_STRG_PAR_VAL *通过SEP 指定的分隔符会被当做一个整体进行操作,当分隔符连续出现时,该位置会返回空字符串```此外,如果需要以某个字符为切割点,取这个字符前面和后面的字符串,可以使用如下的方式:```abapDATA: kunnr(20), kunnr1(20), kunnr2(20). kunnr = 'KYU102345'. SPLIT kunnr AT 'U' INTO kunnr1 kunnr2. WRITE:/ kunnr1. WRITE:/ kunnr2. "运行结果:如果要以K为分割点,那么kunnr1为空```。
javacsript 字符串分割方法JavaScript中有多种方法可以用来分割字符串。
以下是一些常用的方法:1. split()方法:该方法可以根据指定的分隔符将字符串分割成一个字符串数组。
例如,可以使用空格作为分隔符将一个句子分割成单词数组。
示例代码如下:```javascriptvar sentence = 'Hello world! How are you?';var words = sentence.split(' ');console.log(words); // 输出: ['Hello', 'world!', 'How', 'are', 'you?'] ```2. slice()方法:该方法可以根据指定的起始和结束位置截取字符串的一部分。
如果不提供结束位置,则会截取到字符串的末尾。
示例代码如下:```javascriptvar str = 'Hello';var part = str.slice(1, 3);console.log(part); // 输出: 'el'```3. substring()方法:该方法也可以根据指定的起始和结束位置截取字符串的一部分。
不同的是,如果起始位置大于结束位置,该方法会自动交换它们的位置。
示例代码如下:```javascriptvar str = 'Hello';var part = str.substring(3, 1);console.log(part); // 输出: 'el'```4. substr()方法:该方法可以根据指定的起始位置和长度截取字符串的一部分。
示例代码如下:```javascriptvar str = 'Hello';var part = str.substr(1, 3);console.log(part); // 输出: 'ell'```这些方法都可以根据具体的需求选择使用。
c中split的用法c中split的用法你知道吗?下面就跟你们详细介绍下c中split 的用法,希望对你们有用。
c中split的用法如下:1、用字符串分隔:using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[]sArray=Regex.Split(str,"js",RegexOptions.IgnoreC ase);foreach (string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbccc2、用多个字符来分隔:string str="aaajbbbscccjdddseee";string[] sArray=str.Split(new char[2] {'j','s'});foreach(string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbcccdddeee3、用单个字符来分隔:string str="aaajbbbjccc";string[] sArray=str.Split('j');foreach(string i in sArray) Response.Write(i.ToString() + "<br>");输出结果:aaabbbccc////////////////////////////////////////////////string[] arr = str.Split("o");这是一个具有语法错误的语句,Split 的separator 参数应该是char[] 或string[],不应是字符串。
C++的字符串分割函数的使用详解C++的字符串分割函数的使用详解经常碰到字符串分割的问题,下面,就和店铺一起来看一看C++的字符串分割函数的使用详解,希望对大家有帮助!一、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。
参数说明:str为要分解的字符串,delim为分隔符字符串。
返回值:从str开头开始的一个个被分割的串。
当没有被分割的串时则返回NULL。
其它:strtok函数线程不安全,可以使用strtok_r替代。
示例://借助strtok实现split#include#includeint main(){char s[] = "Golden Global View,disk * desk";const char *d = " ,*";char *p;p = strtok(s,d);while(p){printf("%sn",p);p=strtok(NULL,d);}return 0;}运行效果:二、用STL进行字符串的分割涉及到string类的两个函数find和substr:1、find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos2、substr函数原型:string substr ( size_t pos = 0, size_t n = npos ) const;功能:获得子字符串。
参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos)返回值:子字符串实现如下://字符串分割函数std::vectorsplit(std::string str,std::string pattern){std::string::size_type pos;std::vectorresult;str+=pattern;//扩展字符串以方便操作int size=str.size();for(int i=0; i<size; i++){pos=str.find(pattern,i);if(pos<size){std::string s=str.substr(i,pos-i);result.push_back(s);i=pos+pattern.size()-1;}}return result;}完整代码:/*File : split1.cppAuthor : Mike*/#include#include#include//字符串分割函数std::vectorsplit(std::string str,std::string pattern) {std::string::size_type pos;std::vectorresult;str+=pattern;//扩展字符串以方便操作int size=str.size();for(int i=0; i<size; i++){pos=str.find(pattern,i);if(pos<size){std::string s=str.substr(i,pos-i);result.push_back(s);i=pos+pattern.size()-1;}}return result;}int main(){std::string str;std::cout<<"Please input str:"<<std::endl;//std::cin>>str;getline(std::cin,str);std::string pattern;std::cout<<"Please input pattern:"<<std::endl;//std::cin>>pattern;getline(std::cin,pattern);//用于获取含空格的字符串std::vectorresult=split(str,pattern);std::cout<<"The result:"<<std::endl;for(int i=0; i<result.size(); i++){std::cout<<result[i]<<std::endl;}std::cin.get();std::cin.get();return 0;}运行效果:三、用Boost进行字符串的.分割用boost库的正则表达式实现字符串分割实现如下:std::vectorsplit(std::string str,std::string s){boost::regex reg(s.c_str());std::vectorvec;boost::sregex_token_iterator it(str.begin(),str.end(),reg,-1); boost::sregex_token_iterator end;while(it!=end){vec.push_back(*it++);}return vec;}完整代码://本程序实现的是利用正则表达式对字符串实现分割//运行环境 VC6.0 + boost 库/*File : split2.cppAuthor : Mike*/#include#include#include#include#include "boost/regex.hpp"std::vectorsplit(std::string str,std::string s){boost::regex reg(s.c_str());std::vectorvec;boost::sregex_token_iterator it(str.begin(),str.end(),reg,-1); boost::sregex_token_iterator end;while(it!=end){vec.push_back(*it++);}return vec;}int main(){std::string str,s;str="sss/ddd/ggg/hh";s="/";std::vectorvec=split(str,s);for(int i=0,size=vec.size();i<size;i++){std::cout<<vec[i]<<std::endl;}std::cin.get();std::cin.get();return 0;}运行效果:补充:最近发现boost里面有自带的split的函数,如果用boost的话,还是直接用split的好,这里就不多说了,代码如下:#include#include#include#include#includeusing namespace std;int main(){string s = "sss/ddd,ggg";vectorvStr;boost::split( vStr, s, boost::is_any_of( ",/" ), boost::token_compress_on );for( vector::iterator it = vStr.begin(); it != vStr.end(); ++ it ) cout << *it << endl;return 0;}【C++的字符串分割函数的使用详解】。