字符串的分割操作(strtok,split)

一:strtok

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);
	}

}

以上看出第一次之后 分割之后,如果还要继续传的参数就是NULL,因为strtok是把分割的标志位置设置成了/0

分割完之后的字符串: jscese/0test/0strtok 

所以往后的开头指针的位置都是/0处,所以传NULL。

以上结果为:

the first str==jscese
the next str==test
the next str==strtok

strtok函数为线程不安全的函数!因为它在处理分割一个字符串的时候,保存移动位置的指针变量是一个静态变量!

这样的话,在同一个字符串的处理中,如果有多个strtok的同时操作,就会指针错乱了,得不到想到的分割结果。

相对应的有线程安全的strtok_r函数。

二:split

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

时间: 2024-10-13 00:44:54

字符串的分割操作(strtok,split)的相关文章

字符串的切割操作(strtok,split)

一:strtok 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, d

js使用split函数按照多个字符对字符串进行分割的方法

这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js使用split函数按照多个字符对字符串进行分割的方法.分享给大家供大家参考.具体分析如下: js中的split()函数可以对字符串按照指定的符号进行分割,但是如果字符串中存在多个分割符号,js的split()函数是否还可以胜任呢,答案是肯定的,js的split()函数可以通过正则表达式实现多分隔符的字符串分割,调用也很简单,下面

C对字符串的部分操作

字符串分割(C++) 经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全,可以使用strtok_r替代. 示例: 1 //借助strtok实现split

Js 字符串的三大操作

回顾: var num = str.length:字符个数 str = str.toLowerCase()/toUpperCase() var char = str.charAt(index)  :指定位置的字符 var code = str.charCodeAt(index):指定位置的字符的unicode编码 字符串三大操作: 1.查找关键字 2.替换关机子 3.获取子字符串 查找关键字:var index = str.indexOf("关键字"); 返回关键字所在位置!****如

归纳整理Linux下C语言常用的库函数----内存及字符串控制及操作

在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. 字符串转换 3. 字符测试 4. 文件操作 5. 时间日期 6. 常用数学函数 7. 文件内容操作 8. 文件权限控制 9. 进程操作 10. 线程操作 11. Socket操作 12. 信号处理 13. 数据结构及算法 以下是对第一项 内存及字符串控制及操作 的归纳整理. 已经不赞成使用的函数归类

Python 字符串概念和操作

# 字符串概念:由单个字符串组成的一个集合 # 普通字符串(非原始字符串) str = "abc" print(str) # abc # 原始字符串(前面加r) str = r"abc" print(str) # abc # 上面2个字符串区别,普通字符串可以加入转义字符,可以使用%来填坑 str = "ab\tc"; print(str) # ab c # 原始字符串里面的输出按原型打印 str = r"ab\tc"; pr

python字符串、字典操作,文件读写

一.字符串操作:name = 'aabc,dddd,a'name1 = 'q '# print(name[3]) #字符串也可以取下标# print(name.capitalize()) #把字符串首字母大写# print(name.center(11,'*')) #把name放中间,字符串少于11,则用*补全# #print(name.index('p')) #返回字符串的索引,查不到时会报错,substring not found# print(name.isalnum()) #只能有数字或

python字符串和数值操作函数大全(非常全)

字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\‘的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1)\\表示反斜杠(2)\"表示双引号(3)\n表示换行操作 2.字符串的切片操作:"字符串"[x:y:z]:输出字符串从x到z的字符,并且间隔步长为z,控制步长和截取方向,负号表示倒着向前面截取,其中包括x处的字符串,不包括y位置处的字符串. 3.字符串的处理方法:主要有以下几种

Python学习-5.Python的变量与数据类型及字符串的分割与连接

在Python中,变量类型是固定的,一旦声明就不能修改其类型(在Python里感觉不应该用声明,而应该用使用) 正确: 1 var = 1 2 print(var) 3 var = 2 4 print(var) 依次输出变量var的值,1和2. 错误: 1 var = 1 2 print(var) 3 var = "我是变量" 4 print(var) 编译错误,在第三行报错. Python中的数据类型: Boolean isClosed=True Integer age=18 Flo