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取地址
文章介绍了Linux环境中用于字符串分割的两个函数——strtok和strsep。strtok函数通过指定的分隔符对字符串进行逐段分割,而strsep则使用二级指针处理字符串,两者在使用上有一定的区别,例如strtok在后续调用时需传入NULL作为第一个参数,而strsep则直接修改输入的字符串指针。
2931

被折叠的 条评论
为什么被折叠?



