函数原型
char *strtok(char *str, const char *delim);
str为要分解的字符
delim为分隔符字符
函数功能
将一个字符串分解为一个由零或多个非空标记组成的序列。第一次使用strtok(),要分解的字符串应该在str中指定。在后续的每个调用函数中,分解的都是相同的字符串,str必须为NULL。即在第一次之后的调用,都需要将str改为NULL。
注意:
- 在第一次之后的调用,都需要将str改为NULL。
- 没有生成新串,只是在s所指向的内容首次出现分界符的位置,将分界符修改成了’/0’,故第一次用strtok()返回第一个子串
- 当字符串中没有了目标分隔符后,返回NULL。
- 可以把delim理解为分隔符的集合,delim中的字符均可以作为分隔符。
- strtok在调用的时候,如果起始位置即为分隔符,则忽略了起始位置开始的分隔符**
使用程序:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(){
char str[]="woshini,baba,mama,bbsa87774";
char *p=(char *)malloc(sizeof(char));
p = strtok(str,",");
printf("分割后:%s\n",p);
p = strtok(NULL,",");
printf("分割后:%s\n",p);
p = strtok(NULL,",");
printf("分割后:%s\n",p);
p = strtok(NULL,"8");
printf("分割后:%s\n",p);
return 0;
}
结果: