zoukankan      html  css  js  c++  java
  • 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
    ",revbuf[i]);
    33      }
    34  
    35      return 0;
    36 }

    下面是显示的效果截图:

  • 相关阅读:
    11.4 iftop:动态显示网络接口流量信息
    10.2-3 ifup&ifdown:激活与禁用网络接口
    10.1 ifconfig:配置或显示网络接口信息
    10.16-17 mailq&mail:显示邮件传输队列&发送邮件
    10.13 nc:多功能网络工具
    Matplotlib_常用图表
    urlrrtrieve()实例_下载微博短视频
    ulrlib案例-爬取百度贴吧
    Scrapy-Spider
    Scrapy-架构
  • 原文地址:https://www.cnblogs.com/piaoyang/p/9271879.html
Copyright © 2011-2022 走看看