字符串的切割操作(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
撰写不易。转载请注明出处:http://blog.csdn.net/jscese/article/details/26447589
字符串的切割操作(strtok,split)的更多相关文章
- python+selenium之字符串切割操作
python+selenium之字符串切割操作 在Python中自带的一个切割方法split(),这个方法不带参数,就默认按照空格去切割字段,如果带参数,就按照参数去切割. 新建一个python文件, ...
- c/c++ 常见字符串处理函数总结 strlen/sizeof strcpy/memcpy/strncpy strcat/strncat strcmp/strncmp sprintf/sscanf strtok/split/getline atoi/atof/atol
这里总结工作中经常用到的一些c/c++的字符串处理方法,标黑的是使用频率较高的 1.strlen函数:计算目标字符串长度, 格式:strlen(字符指针指向区域) 注意1:①不包含字符串结束 ...
- JS对于字符串的切割截取
对于字符串的切割截取平时所用可能不是特别多,而且分的比较细,所以自备自查.有备无患. 由于之前所有均在一个demo测试,若是哪里打错了,敬请谅解.一些其余属性找时间继续添加. 1.函数:split() ...
- C对字符串的部分操作
字符串分割(C++) 经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char ...
- Python第一天——入门Python(2)字符串的简单操作
数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...
- Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块
Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块 目录 Pycharm使用技巧( ...
- Js 字符串的三大操作
回顾: var num = str.length:字符个数 str = str.toLowerCase()/toUpperCase() var char = str.charAt(index) :指 ...
- Python字符串的简单操作
数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...
- Python_003(字符串的神操作)
一.编码问题 1.编码:计算机最早是ACSII码,美国人创造的,包含了英文字母(大写字母,小写字母)数字,标点等特殊符号; :共有7位0和1组成,表示128个ACSII码,但是计算机对7这个数字不敏感 ...
随机推荐
- responsive-navigator
html 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- System.err与System.out的区别
大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错. 三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错. 在其它语言中 ...
- 【译】x86程序员手册25-7.1任务状态段
7.1 Task State Segment 任务状态段 All the information the processor needs in order to manage a task is st ...
- 【转】非常好的Java反射例子
转自 http://www.douban.com/note/306848299/ 原文: 1.Java反射的概念 反射含义:可以获取正在运行的Java对象. 2.Java反射的功能 1)可以判断运行时 ...
- linux nohup & 简单使用
线上通常nohup配合&启动程序,同时免疫SIGINT和SIGHUP信号,从而保证程序在后台稳定运行 & 1.后台运行,输出默认到屏幕 2.免疫SIGINT信号,比如Ctrl+c不会杀 ...
- js中=,==,===的区别
= 赋值 == 先判断类型,在判断值,可以做类型转换 === 恒等判断
- JDBC—简单的数据交互
东西传值.交互 ps:里面的时间为手动添加.如果需要更改为系统日期,那就把里面 加了 // 的语句去掉 ,然后再加 包驱动. 新建一个1.jsp 用来当做用户输入东西的界面 再新建 第二个页面 ...
- Go:变量、常量、枚举
一.变量 package main import "fmt" func variableZeroValue() { // 变量声明 var a int var b string f ...
- Docker从入门到实践
一般说来 SPA 的项目我们只要启一个静态文件 Server 就可以了,但是针对传统项目就不一样了,一个项目会依赖很多服务端程序.之前我们的开发模式是在一台开发机上部署开发环境,所有人都在这台开发机上 ...
- linux ifstat-统计网络接口流量状态
推荐:更多linux 性能监测与优化 关注:linux命令大全 ifstat命令就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具.ifstat工具系统中并不默认安 ...