C/C++:char *strtok(char s[], const char *delim);
s 代表需要分割的字符串,delim代表分割的标志,参数都为比选!返回指向分割部分的指针,如果没有分割成功就返回NULL.
一个简单的例子:
void main()
{
	char *str = "jscese test strtok";
	char *delim = " ";
	char *pstr = NULL;
	pstr = strtok(str, delim);
	printf("the first str==%s \n", pstr);
	while ((pstr = strtok(NULL, delim)) != NULL)
	{
		printf("the next str==%s \n", pstr);
	}
}分割完之后的字符串: jscese/0test/0strtok
所以往后的开头指针的位置都是/0处,所以传NULL。
以上结果为:
the first str==jscese the next str==test the next str==strtok
这样的话,在同一个字符串的处理中,如果有多个strtok的同时操作,就会指针错乱了,得不到想到的分割结果。
相对应的有线程安全的strtok_r函数。
java:stringObj.split([separator,[limit]]);
stringObj 指需要分割的字符串实体.
separator  分割的标志.
limit 代表返回的元素个数,为可选参数。
返回一个字符串数组.
简单例子:
public void split() {
	String testString = "jscese.test.split";
	String[] splitarray1 = testString.split("\\.");
	for (int i = 0; i < splitarray1.length; i++) {
		System.out.println(splitarray1[i]);
	}
	String[] splitarray2 = testString.split("\\.", 2);
	for (int i = 0; i < splitarray2.length; i++) {
		System.out.println(splitarray2[i]);
	}
}java中 像 + * | \ .等都需要加转义。
以上运行结果:
jscese
test
split
jscese
test.splilt
字符串的分割操作(strtok,split),布布扣,bubuko.com
原文地址:http://blog.csdn.net/jscese/article/details/26447589