c/c++ 中的Split函数(字符串自动分割)
2018-02-02 15:59
519 查看
//————————————————【转自:Vincentlmeng】——————————————————–//
一、 split()方法用于将一个字符串分割成字符串数组。
语法:
参数介绍:separator:必需。字符串或正则表达式,从该参数指定的地方分割stringObject。
howmany
可选,该参数指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多余这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值:一个字符串数组,该数组是通过在separator指定的边界处将字符串stringObject分割成子串创建的。返回的数组中的子串不包括separator自身。
但是如果separator是包含子表达式的正则表达式,那么返回的数组中包括与这些子类表达式匹配的子串(不包括与整个正则表达式匹配的文本)。
注意:如果把空字符(“”)用来separator,那么stringObject中的每个字符之间都会被分割。
例如:
结果:
例1:指定字符分割
输出结果为:123, 456
例2、使用下面的方法可以把句子分割成单词
或者 使用正则表达式作为separator:
对于某些特殊字符,如果字符串正好是正则的一部分,那么就需要转义才能使用。
这些字符有|,+,,^,$, / , |, [, ], (, ), -, ., *等
因为他们是正则表达式中的一部分,所以如果想要用该字符本身,这些字符需要进行转移才能表示它本身,
例3、
想要用|竖线去分割某字符,因为|本身是正则表达式中的一部分,所以需要\去转义,而\正好也是正则表达式中的字符,所以还需要一个\,既需要使用两个。\才可以。
输出结果为:123, abc
例4、如果希望把字符串只返回一部分字符,就使用howmany参数:
“hello”.split(“”,3)
结果就返回“h”,”e”,”l”
二、在c++中strtok()用来将字符分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数str的字符串中发现到参数的delimiters的分割字符时会将该字符改为‘\0’字符,在第一次调用时,strtok()必须给予参数str字符串,往后的调用则将参数str设置成NULL.
函数原型:
输出:
一、 split()方法用于将一个字符串分割成字符串数组。
语法:
stringObject.split(separator,howmany)
参数介绍:separator:必需。字符串或正则表达式,从该参数指定的地方分割stringObject。
howmany
可选,该参数指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多余这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值:一个字符串数组,该数组是通过在separator指定的边界处将字符串stringObject分割成子串创建的。返回的数组中的子串不包括separator自身。
但是如果separator是包含子表达式的正则表达式,那么返回的数组中包括与这些子类表达式匹配的子串(不包括与整个正则表达式匹配的文本)。
注意:如果把空字符(“”)用来separator,那么stringObject中的每个字符之间都会被分割。
例如:
string str="hello"; string[] a=str.split(""); for(int i=0;i<a.size();i++) {cout<<a[i]<<endl;}
结果:
h e l l o
例1:指定字符分割
string str="123@456"; string[] a=str.split("@"); cout<<a[0]<<", "<<a[1]<<endl;
输出结果为:123, 456
例2、使用下面的方法可以把句子分割成单词
var word=sentence.split(’ ‘);
或者 使用正则表达式作为separator:
var words=sentence.split(/\s+/);
对于某些特殊字符,如果字符串正好是正则的一部分,那么就需要转义才能使用。
这些字符有|,+,,^,$, / , |, [, ], (, ), -, ., *等
因为他们是正则表达式中的一部分,所以如果想要用该字符本身,这些字符需要进行转移才能表示它本身,
例3、
想要用|竖线去分割某字符,因为|本身是正则表达式中的一部分,所以需要\去转义,而\正好也是正则表达式中的字符,所以还需要一个\,既需要使用两个。\才可以。
string str="123|abc"; string []b=str.split("\\|"); cout<<b[0]<<","<<b[1]<<endl;
输出结果为:123, abc
例4、如果希望把字符串只返回一部分字符,就使用howmany参数:
“hello”.split(“”,3)
结果就返回“h”,”e”,”l”
二、在c++中strtok()用来将字符分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数str的字符串中发现到参数的delimiters的分割字符时会将该字符改为‘\0’字符,在第一次调用时,strtok()必须给予参数str字符串,往后的调用则将参数str设置成NULL.
函数原型:
char*strtok(char*str,const char *delimiters);
/* strtok example */ #include <stdio.h> #include <string.h> int main () { char str[] ="a,b,c,d*e"; const char * split = ","; char * p; p = strtok (str,split); while(p!=NULL) { printf ("%s\n",p); p = strtok(NULL,split); } getchar(); return 0;
输出:
a b c d*e
相关文章推荐
- C++中的Split函数(字符串自动分割)
- C/C++中的Split函数(字符串自动分割)
- C/C++中的Split函数(字符串自动分割)
- C/C++中的Split函数(字符串自动分割)
- 【转】C/C++中的Split函数(字符串自动分割)
- 函数字符串C++的String类的字符串分割实现----(效果等于Java的String类的split函数)
- C++的String类的字符串分割实现----(效果等于Java的String类的split函数)
- 用C/C++实现Java中的split函数分割字符串
- C++中以固定分隔符分割CString字符串
- C++ 字符串分割
- C/C++中的字符串分割
- SQL SERVER里用SPLIT函数分割字符串
- c++ string split分割字符串
- C++:实现split分割字符串 - 改进
- js使用split函数按照多个字符对字符串进行分割的方法
- 模拟java的split函数,分割字符串,类似于java的split方法
- c/c++ 字符串分割 (strtok)
- C/C++分割字符串:strtok函数
- c++里面的字符数组和字符串及其分割
- C++分割字符串