linux 中strtok和strsep字符分割函数
1.strtok
//函数原型
char *strtok(char *str, const char *delim);
str 带分割字符串 delim分割符
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[48] = "hello.this.is.strtok.test";
char *buf = NULL;
char *delim = ".";
char *ret = NULL;
buf = str;
printf("-------src [%s] delim [%s]--------\r\n",buf,delim);
for(ret = strtok(buf,delim);NULL != ret;ret = strtok(NULL,delim))
{
printf("ret = %s\r\n",ret);
}
}
2.strsep
//函数原型
char *strsep(char **stringp, const char *delim);
stringp 带分割字符串(注意这里是二级指针,&取地址) delim分割符
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char str2[24] = "this-is-strsep-test";
char *delim = "-";
char *ret = NULL;
char *buf = str2;
printf("-------src [%s] delim [%s]--------\r\n",buf,delim);
for(ret = strsep(&buf,delim);NULL != ret; ret = strsep(&buf,delim))
{
printf("ret = %s\r\n",ret);
}
return 0;
}
strtok注意在使用的时候第二次传入的值为NULL,strsep取地址