c语言split的实现代码

  我们知道在其他语言中有split函数可以把一个字符串按你自己想要的分隔符分割成多个字符串并以列表的形式返回。但是对于c语言来说,是没有这样一个函数接口可以直接调用的。但是有时候在项目工作中,又会用到这样的函数,特别是解析配置文件的时候。所以这里就写了一个split  c语言的实现方法。

  函数原型:void split(char *src,const char *separator,char **dest,int *num)

  参数:src 源字符串的首地址

          separator  指定的分割字符

        dest  接收子字符串的数组

                  num  分割后子字符串的个数

 

  

  实例代码:

    

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 void split(char *src,const char *separator,char **dest,int *num) {
 5      char *pNext;
 6      int count = 0;
 7      if (src == NULL || strlen(src) == 0)
 8         return;
 9      if (separator == NULL || strlen(separator) == 0)
10         return;    
11      pNext = strtok(src,separator);
12      while(pNext != NULL) {
13           *dest++ = pNext;
14           ++count;
15          pNext = strtok(NULL,separator);  
16     }  
17     *num = count;
18 }     
19 
20 int main(){
21      char buf[]="name#sex#age#class#id#";
22      //用来接收返回数据的数组。这里的数组元素只要设置的比分割后的子字符串个数大就好了。
23      char *revbuf[8] = {0};
24  
25      //分割后子字符串的个数
26      int num = 0;
27  
28      split(buf,"#",revbuf,&num);
29  
30      int i = 0;
31      for(i = 0;i < num; i ++) {
32          printf("%s\n",revbuf[i]);
33      }
34  
35      return 0;
36 }

下面是显示的效果截图:

 

posted @ 2018-07-06 09:29  漂洋过海的熊  阅读(16130)  评论(0编辑  收藏  举报