Linux 内核可用的字符串分割函数 strsep (String Split Function strsep in Linux Kernel)

C 语言字符串分割可使用 strsep,是 strtok 函数的替代,而且可用于内核,推荐。

 

[cpp]  view plain copy
  1. char *strsep(char **stringp, const char *delim);  

 

函数接受的第一个参数是 in-out prarameter,在函数执行后会被更改,总指向当前要被分割的字符串;第二个参数顾名思义,是分割符。函数返回分割后的第一个字符串。函数执行的过程,是在 *stringp 中查找分割符,并将其替换为“\0”,返回分割出的第一个字符串指针(NULL 表示到达字符串尾),并更新 *stringp 指向下一个字符串。示例代码如下:

[cpp]  view plain copy
  1. #include <linux/string.h> // 或 string.h  
  2. #include <stdlib.h>  
  3. #include <stdio.h>  
  4.   
  5. int main(int argc, const char *argv[]) {  
  6.   charconst delim = "/";  
  7.   char str[] = "some/split/string";  
  8.   
  9.   char *token, *cur = str;  
  10.   while (token = strsep(&cur, delim)) {  
  11.     printf("%s\n", token);  
  12.   }  
  13.   return 0;  
  14. }  
注意:“char str[]”不能用“char *str”代替,前者填充为数组,后者指向常量不可更改,而 strsep 函数需要更改目标字符串。如果不了解 strsep 的执行过程,很容易用错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值